实验内容: 1.安造实验一的要求搭建Java Web开发环境; 2.创建并部署一个Servlet,要求在实现用户登录功能,当用户名和密码正确时跳转到欢迎页面,否则提示出错信息,同时要求保证只有正确登录的用户可以浏览欢迎页面,否则提示用户登录,另外要求能够正确处理中文乱码问题。 3.编写并部署Servlet,要求能够统计访问网站的用户数量。 Login.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"> <% String name,password; name=(String)session.getAttribute("name"); password=(String)session.getAttribute("password"); if(name==null){ name=""; } if(password==null){ password=""; } %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>登陆界面</title> </head> <body> <form action="LoginServlet" method="post"> 用户名:<input type="text" name="name" value="<%=name %>"/><br> 密 码:<input type="password" name="password" value="<%=password %>"/><br> <input type="submit" value="提交"/> <input type="rest" value="重置"/><br> </form> </body> </html> 图 1 Login.jsp界面 loginServlet代码如下: package cn.edu.qfnu.ch07.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; publicclass LoginServlet extends HttpServlet { privatestaticfinallongserialVersionUID = 1L; public LoginServlet() { super(); } protectedvoid doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } protectedvoid doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out=response.getWriter(); String name=request.getParameter("name"); String password=request.getParameter("password"); HttpSession session=request.getSession(); session.setAttribute("name",name); session.setAttribute("password",password); session.setMaxInactiveInterval(20*60); out.print("<html>"); out.print("<head>"); out.print("<title>"); out.print("欢迎访问!"); out.print("</title>"); out.print("</head>"); out.print("<body>"); out.print("<h1>"+name+",欢迎访问!<h1>"); out.print(" "); out.print("<a href='LogoutServlet'>注销</a>"); out.print("</body>"); out.print("</html>"); } } LoginoutServlet.java代码如下: package cn.edu.qfnu.ch07.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 javax.servlet.http.HttpSession; publicclass LogoutServlet extends HttpServlet { privatestaticfinallongserialVersionUID = 1L; public LogoutServlet() { super(); } protectedvoid doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //注销当前session,并返回到login.jsp HttpSession session=request.getSession(); session.invalidate(); response.sendRedirect("login.jsp"); } protectedvoid doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }
|
图2 输入账号密码 图 3 提交结果 图 4注销之后
name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8"); password=new String(request.getParameter("password").getBytes("ISO-8859-1"),"utf-8"); 图5 乱码解决
|
转载于:https://blog.51cto.com/8171374/1417914