![](/Images/OutliningIndicators/ContractedBlock.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
login.jsp登录页面
<%@page contentType="text/html; charset=GBK"%>
<html>
<head>
<title>login</title>
</head>
<body bgcolor="#ffffff">
<h1>防穿墙</h1>
<form method="post" action="/ChuanQiangModule/loginservlet">
<br>
<br>
<table>
<tr>
<td>用户名:</td>
<td>
<input type="text" name="username"/>
</td>
<td>密码:</td>
<td>
<input type="password" name="pwd"/>
</td>
</tr>
</table>
<input type="submit" name="Submit" value="提交">
<input type="reset" value="重置">
</form>
</body>
</html>
LoginServlet 登录Servlet
package chapter03;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class LoginServlet extends HttpServlet {
public LoginServlet() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
// 设置支持中文,注意要写在最前面
request.setCharacterEncoding("utf-8");
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
// 创建会话
HttpSession session = request.getSession();
// 得到请求页面中的相应参数的值
String username = request.getParameter("username");
String pwd = request.getParameter("pwd");
// 设置相应的属性值,在会话范围内有效
session.setAttribute("username", username);
// 判断用户名和密码是否正确,正确则转到validateservlet,否则会提示错误,然后跳转到登录页面
if (username.equals("sofie") && pwd.equals("sofie")) {
response.sendRedirect("validateservlet");
} else {
out.print("<script>alert('错误的用户名和密码')</script>");
out.print("<script>window.location.href = 'login.jsp'</script>");
}
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}
//Clean up resources
public void destroy() {
}
private void jbInit() throws Exception {
}
}
ValidateServlet,验证Servlet
package chapter03;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class ValidateServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
// 如果执行了LoginServlet后,则已经创建了会话,下面的session就不为空,否则则为null
HttpSession session = request.getSession();
String name = (String) session.getAttribute("username");
// 如果当前会话中的username为null,则说明没有通过LoginServlet这个Servlet转到这个Servlet,也就是说没有登录,则会返回登录页面(login.jsp)
if (name == null || session == null) {
response.sendRedirect("/ChuanQiangModule/login.jsp");
} else {
out.print("登录成功");
}
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}
//Clean up resources
public void destroy() {
}
}
web.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<display-name>ChuanQiangModule</display-name>
<servlet>
<servlet-name>loginservlet</servlet-name>
<servlet-class>chapter03.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginservlet</servlet-name>
<url-pattern>/loginservlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>validateservlet</servlet-name>
<servlet-class>chapter03.ValidateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>validateservlet</servlet-name>
<url-pattern>/validateservlet</url-pattern>
</servlet-mapping>
</web-app>