【JavaWeb学习笔记】从jsp到Servlet提交数据(不使用session)

将在学习jsp向Servlet传递参数的过程中需要注意的地方总结如下:

开发环境:eclipse(Indigo) 、Tomcat 7.0.56

  • 项目结构
【JavaWeb学习笔记】从jsp到Servlet提交数据(不使用session)_第1张图片
项目结构
  • jsp代码
  1. 编码
    为了能够正常显示中文,需要做以下编码格式设置。
<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
  1. form表单
  • action设置:action指定所要跳转的Servlet的路径名,method指定http请求使用何种方法。
    -- action路径需要与在web.xml中配置的url-pattern一致,必要时需要加上请求的上下文
    -- method常用的方法有两种:post和get。HttpServlet对两种请求对应的处理方法分别为doPost方法和doGet方法。
    二者区别如下:
操作 get post
刷新 不会重复提交 重复提交
数据长度 2048个字符 无限制
数据类型 ASCII字符 无限制
可见性 URL中可见 URL中不可见
安全性
  • input设置:这里的name属性对应在parameter的name。

完整的form代码:

用户名:
密码:
  • Servlet代码
    需要在doPost方法和doGet方法中完成对应的业务处理。
    这里需要注意的几点:
  1. HttpRequest和HttpResponse的编码设置要一致。
  2. 要想中文显示正常,要在获取到response的printWriter之后再设置request的编码。其他顺序不清楚可不可以,感兴趣的话可以试一下。
  3. 字段parameter名字要和jsp中的name属性要一致。
  4. 用response的getWriter()方法向屏幕输出信息,而System.out.println()方法是向eclipse的console控制台输出信息。
  5. response的printwriter的println()方法本身不换行,想换行需要再加上"
    ",或者"
    ",实现换行的效果。
  6. printwriter用完后需要close。

完整的doPost()代码:

@Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("=====进入了doPost方法=====");
        resp.setCharacterEncoding("GB18030"); //编码req和resp要一致,这里用的是GB18030,试了一下utf-8,结果中文乱码
        String username=req.getParameter("uname"); //字段名字要和jsp中的name属性一致
        String password=req.getParameter("pwd");
        PrintWriter out=resp.getWriter();
        req.setCharacterEncoding("GB18030");
        out.println("用户名==》  "+username+"
"); //用getWriter()向屏幕输出信息 out.println("密码==》 "+password); //需要加
换行 out.flush(); out.close(); }
  • web.xml配置

这里完成Sevlet的一些配置。

  • servlet中的servlet-class要写servlet所在的包名和类名。
  • serlet-mapping中的servlet-name和servlet中的servlet-name要一致。
  • display-name随意设置,url-pattern要和jsp中的action路径一致,上面已经说明。

配置代码如下:


    
    LoginServlet
    LoginServlet
    com.feng.javawebstudy.LoginServlet
  
  
    LoginServlet
    /LoginServlet
  

最终页面效果:

【JavaWeb学习笔记】从jsp到Servlet提交数据(不使用session)_第2张图片
登录页面
【JavaWeb学习笔记】从jsp到Servlet提交数据(不使用session)_第3张图片
显示信息页面

初学JavaWeb,哪里不对的地方欢迎大家指正!

你可能感兴趣的:(【JavaWeb学习笔记】从jsp到Servlet提交数据(不使用session))