在test2的基础上做修改,新建带有包servlet的RegisterServlet.java,
步骤如下:src –> 右键new à 选择servlet,若没找到选择 other,在上面的搜索栏输入 servlet自然就会出现。输入包名servlet,名称RegisterServlet,选择生成doGet,doPost方法如下图。点击next,接下来给出的是myeclipse自动添加servlet的定义到web.xml中,选择默认的就好。点击finish。
删除myeclipse自动为我们生成的注释和方法内容,
RegisterServlet.java内容如下
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RegisterServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*这里选择将所有以get方式提交的全部交给doPost方法处理;
get方式提交是将所有的要传递的参数附加在地址栏后传过来,
这样在参数少的情况或者没有参数的情况会考虑这种方式,
因为附加在地址栏的字符不安全,二字符不能超过一定的大小
在网页中大部分时候都要传递大量的数据,尤其有上传文件就不能选择get方式提交
*/
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");
String password = request.getParameter("password");
//将页面中form表单提交过来的参数保存到request对象中,采用map的形式保存的
request.setAttribute("registerName", name);//在页面中通过registerName取得name的值
request.setAttribute("registerPassword", password);
request.getRequestDispatcher("/register_success.jsp").forward(request, response);
}
}
register.jsp的内容如下
一定要注意这里的pageEncoding="UTF-8" 这个是javaweb比较常见的问题——乱码,在简单例程中为避免这个问题没有采用全部用的是英文
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<form action="servlet/RegisterServlet" method="post">
Plase write your name and password!<br/>
name:<input type="text" name="name"/><br/>
password:<input type="password" name="password"/>
<input type="submit" value="regiser"/>
</form>
</body>
</html>
register_success.jsp内容如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<font color="red">register success!</font><br/>
<font color="blue">Your regiser name is :</font><%=request.getAttribute("registerName") %><br/>
<font color="blue">Your regiser password is :</font><%=request.getAttribute("registerPassword") %>
<%--
在这个jsp中写了部分java代码,像用<% %>包含的可以写在java类写的任意语句
这里用<%= %>是直接输出结果的意思
--%>
<%-- 在jsp中有两个注释,这种注释任何用<% %>包含的java代码,还可以注释标签--%>
<!-- 这种注释只能注释纯jsp的代码-->
</body>
</html>
测试地址:http://localhost:8080/test2/register.jsp