Filter:
1, write a common class implementation filter interface
2, implement one of the DoFilter methods here to write business
3, configuring the filter in Web. xml
User login:
1. Write the login Dao,service class and the corresponding method;
2. The foreground write a form, including the account number and password two input; URL write query URL of the servlet of the logged-on user at the time of submission
3. Backstage to get the parameters passed by the front desk, as a condition for the query
Here we write only the focus
Logindaoimpl
Package Dao.impl;
Import java.sql.SQLException;
Import Org.apache.commons.dbutils.QueryRunner;
Import Org.apache.commons.dbutils.handlers.BeanHandler;
Import util. Dbutil;
Import DAO. Logindao;
Import entity. U
public class Logindaoimpl implements Logindao {
Queryrunner QR = Dbutil.getqueryrunner ();
@Override
Public U login (U u) {
String sql= "Select*from u where name=? and password=? ";
U uu=new u ();
try {
Uu=qr.query (SQL, New beanhandler<u> (U.class), U.getname (), U.getpassword ());
} catch (SQLException e) {
TODO auto-generated Catch block
E.printstacktrace ();
}
return UU;
}
}
Loginserviceimpl
Package Service.impl;
Import service. Loginservice;
Import DAO. Logindao;
Import Dao.impl.LoginDaoImpl;
Import entity. U
public class Loginserviceimpl implements Loginservice {
Private Logindao logindao=new Logindaoimpl ();
@Override
Public U login (U u) {
U UU = logindao.login (u);
return UU;
}
}
Loginservlet
Package servlet;
Import java.io.IOException;
Import javax.servlet.ServletException;
Import Javax.servlet.http.HttpServlet;
Import Javax.servlet.http.HttpServletRequest;
Import Javax.servlet.http.HttpServletResponse;
Import service. Loginservice;
Import Service.impl.LoginServiceImpl;
Import entity. U
public class Loginservlet extends HttpServlet {
Private Loginservice loginservice=new Loginserviceimpl ();
@Override
public void DoPost (HttpServletRequest request, httpservletresponse response)
Throws Servletexception, IOException {
Request.setcharacterencoding ("Utf-8");
Response.setcontenttype ("Text/html;charset=utf-8");
String name = Request.getparameter ("name");
String Password = request.getparameter ("password");
try {
U u=new u ();
U.setname (name);
U.setpassword (password);
U UU = loginservice.login (u);
if (uu!=null) {
Request.getsession (). SetAttribute ("U", UU);
Request.getrequestdispatcher ("/emplist"). Forward (request, response);
}else{
Request.getsession (). SetAttribute ("message", "User name or password error, please retry");
Response.sendredirect (Request.getcontextpath () + "/userlogin.jsp");
}
} catch (Exception e) {
E.printstacktrace ();
Response.sendredirect (Request.getcontextpath () + "/error.jsp");
}
}
@Override
public void doget (HttpServletRequest request, httpservletresponse response)
Throws Servletexception, IOException {
}
}
Loginfilter.java
Package filter;
Import java.io.IOException;
Import Javax.servlet.Filter;
Import Javax.servlet.FilterChain;
Import Javax.servlet.FilterConfig;
Import javax.servlet.ServletException;
Import Javax.servlet.ServletRequest;
Import Javax.servlet.ServletResponse;
Import Javax.servlet.http.HttpServletRequest;
Import Javax.servlet.http.HttpServletResponse;
Login Filter
public class Loginfilter implements Filter {
@Override
public voidDoFilter(ServletRequest arg0, Servletresponse arg1,
Filterchain chain) throws IOException, Servletexception {
HttpServletRequest request= (httpservletrequest) arg0;
HttpServletResponse response= (httpservletresponse) arg1;
Set character encoding
Request.setcharacterencoding ("Utf-8");
Response.setcontenttype ("Text/html;charset=utf-8");
The URI that gets the request, such as;/servlettest/login
String uri = Request.getrequesturi ();
System.out.println ("uri======" +uri);
Get the subscript for the second "/" in the URI
int index = Uri.lastindexof ("/");
System.out.println ("/Subscript is:" +index);
Intercepts all characters from the second "/" to the last, judging which method is currently being accessed
String method = Uri.substring (index+1);
System.out.println ("Method of current Access---" +method);
If it is a login request or access to the login page, release
if ("Login". Equals (method) | | " Userlogin.jsp ". Equals (method) | |" ". Equals (method)) {
Release
System.out.println ("released");
Chain.dofilter (Request,response);
}else{//is not a logon request
Get the session and determine if there are any login messages stored in the session
System.out.println ("no release");
Object obj = Request.getsession (). getattribute ("U");
if (obj!=null) {
Session with saved user information, proof of login, release
Chain.dofilter (request, response);
}else{
Otherwise, it's not logged in, not released.
Request.setattribute ("message", "Please login First");
Request.getrequestdispatcher ("/userlogin.jsp"). Forward (request, response);
}
}
}
@Override
public void init (Filterconfig arg0) throws Servletexception {
}
@Override
public void Destroy () {
}
}
Xml
<?xml version= "1.0" encoding= "UTF-8"?>
<web-app xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns= "Http://java.sun.com/xml/ns/javaee" xsi: schemalocation= "Http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id= "Webapp_ ID "version=" 3.0 ">
<display-name>servletTest</display-name>
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>filter. Loginfilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<!--to intercept all requests.
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>servlet. Loginservlet</servlet-class>
</servlet>
<servlet>
<servlet-name>count</servlet-name>
<servlet-class>servlet. Countservlet</servlet-class>
</servlet>
<servlet>
<servlet-name>addEmp</servlet-name>
<servlet-class>servlet. Addempservlet</servlet-class>
</servlet>
<servlet>
<servlet-name>deleteEmp</servlet-name>
<servlet-class>servlet. Deleteempservlet</servlet-class>
</servlet>
<servlet>
<servlet-name>findUpdEmp</servlet-name>
<servlet-class>servlet. Findupdempservlet</servlet-class>
</servlet>
<servlet>
<servlet-name>updateEmp</servlet-name>
<servlet-class>servlet. Updateempservlet</servlet-class>
</servlet>
<servlet>
<servlet-name>findEmp</servlet-name>
<servlet-class>servlet. Findempservlet</servlet-class>
</servlet>
<servlet>
<servlet-name>empList</servlet-name>
<servlet-class>servlet. Findempsservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>count</servlet-name>
<url-pattern>/count</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>addEmp</servlet-name>
<url-pattern>/addEmp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>deleteEmp</servlet-name>
<url-pattern>/deleteEmp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>findUpdEmp</servlet-name>
<url-pattern>/findUpdEmp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>updateEmp</servlet-name>
<url-pattern>/updateEmp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>findEmp</servlet-name>
<url-pattern>/findEmp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>empList</servlet-name>
<url-pattern>/empList</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>userlogin.jsp</welcome-file>
</welcome-file-list>
</web-app>
userlogin.jsp
<%@ page language= "java" contenttype= "text/html; Charset=utf-8 "
pageencoding= "Utf-8"%>
<! DOCTYPE HTML PUBLIC "-//w3c//dtd HTML 4.01 transitional//en" "HTTP://WWW.W3.ORG/TR/HTML4/LOOSE.DTD" >
<meta http-equiv= "Content-type" content= "text/html; Charset=utf-8 ">
<title> User Login Page </title>
<body>
<form action= "/servlettest/login" method= "POST" >
Account: <input type= "text" name= "name"/><p>
Password: <input type= "text" name= "password"/><p>
<input type= "Submit" value= "Submission"/><p>
${message}
</form>
</body>
User Login and Filter