User Login and Filter

Source: Internet
Author: User

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>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type= "Submit" value= "Submission"/><p>
${message}
</form>
</body>

User Login and Filter

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.