JavaWeb快速入门六

表单提交

 

test2的基础上做修改,新建带有包servletRegisterServlet.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

 

你可能感兴趣的:(java,jsp,Web,servlet)