(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
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>