实验内容:

    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="提交"/>&nbsp;&nbsp;

<input type="rest"  value="重置"/><br>

</form>

</body>

</html>

spacer.gif

        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("&nbsp;&nbsp;&nbsp;&nbsp;");

        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);

    }

}

 


 
 

spacer.gif

             2 输入账号密码

spacer.gif

        图 3 提交结果

spacer.gif

           图 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");

spacer.gif

    图5 乱码解决