javaweb速求解答

编写2个JSP页面和1个servlet,使其满足如下要求。(30分)
(1) 编写完整register.jsp页面,页面提供一个表单,用户可以通过表单输入学生的学号(stuId)、姓名(stuName)、班级(stuClass),提交给servlet处理,要求有提交和重置按钮。
(2) 编写servlet(完整类名是myservlet.StuRegister,定义在StuRegister.java中),将输入的学生学号、姓名、班级存放到session中,然后重定向到show.jsp页面,只需写出servlet的doPost()方法的代码。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
(3) 编写完整show.jsp页面使用EL表达式显示学生信息。
servlet已经如下在web.xml中注册:


stuRegister
myservlet.StuRegister


stuRegister
/studentRegister


请根据以上要求设计相应的web程序。

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import lin.db.DBServlet;
import lin.entity.User;

/**
 * Servlet implementation class RegisterServlet
 */
/*@WebServlet("/RegisterServlet")*/
public class RegisterServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegisterServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //跳转到register.jsp
          request.getRequestDispatcher("/WEB-INF/page/register.jsp").forward(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html);charset=UTF-8");
        System.out.println("注册的用户名是:"+request.getParameter("name"));
        //获取实体User中的变量,将变量插入到数据库中,完成注册
         User user=new User();
         //获取注册的用户名,"name"要与jsp页面中的变量名一致
         String name=request.getParameter("name");
         String sno=request.getParameter("sno");
         String classname=request.getParameter("classname");

         //将获取到的注册信息放入user中
         user.setName(name);
         user.setClassname(classname);
         user.setSno(sno);

         try {
         //获取数据库的连接,并将user中的数据插入数据库中
         //查询当前的用户名和邮箱在数据库中是否已经被注册过
         String sql="select id from t_users where name =?";
         DBServlet conn=new DBServlet();
         //与数据库获取连接
           Connection connection=conn.getConn();
        //SQL语句被预编译并存储在PreparedStatement对象中
        PreparedStatement statement=connection.prepareStatement(sql);
        //将第一个问号的name值添加进去
        statement.setString(1, name);
        //执行sql语句
        ResultSet rs=statement.executeQuery();

        //判断rs集合中是否为null,为null表示数据库中不存在重复的
        //否则存在重复数据,注册失败
        if(rs.next())
        {
            System.out.println("注册失败,用户名或者邮箱已经存在,");
            //重新跳转到注册页面
            request.getRequestDispatcher("/WEB-INF/page/register.jsp").forward(request, response);;
        }
        else
        {
            String sql1="insert into t_users (name,classname,sno) values(?,?,?)";
            statement=connection.prepareStatement(sql1);
            statement.setString(1, name);
            statement.setString(2, classname);
            statement.setString(3, sno);

            int result=statement.executeUpdate();
            if(result==1)
            {
                System.out.println("注册成功,欢迎你:"+name);
                request.setAttribute("remind", "注册成功");
                request.getRequestDispatcher("/WEB-INF/page/register.jsp").forward(request, response);
            }
            else
            {
                System.out.println("注册失败");
                request.getRequestDispatcher("/WEB-INF/page/register.jsp").forward(request, response);
            }

        }

        //关闭数据库连接
        rs.close();
        statement.close();
        connection.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            System.out.println("数据库连接失败");
            e.printStackTrace();
        }

    }
}
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>学生信息注册</title>
  </head>
  <body>
    <h1 align="center">学生信息注册</h1>
    <hr/>
    <form method="post" action="RegisterServlet">
        学号:<input type="text" name="sno"><br/>
        姓名:<input type="text" name="name"><br/>
        班级:<input type="text" name="classname"><br/>
        <input type="submit" value="提交">
        <input type="reset" value="重置">
    </form>
  </body>
</html>
 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>学生信息注册</title>
  </head>
  
  <body>
    <h1 align="center">学生信息注册</h1>
    <hr/>
    
    <form name="form1" method="post" action="${pageContext.request.contextPath}/stuRegister">
        学号:<input type="text" name="Studid"><br/>
        姓名:<input type="text" name="studName"><br/>
        班级:<input type="text" name="className"><br/>
        <input type="submit" value="提交">
        <input type="reset" value="重置">
    </form>
    
  </body>
</html>