程序猿阵线联盟-汇总各类技术干货技术干货

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

2017-07-28  本文已影响0人  cuifengli

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

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

项目结构
  1. 编码
    为了能够正常显示中文,需要做以下编码格式设置。
<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
  1. form表单
操作 get post
刷新 不会重复提交 重复提交
数据长度 2048个字符 无限制
数据类型 ASCII字符 无限制
可见性 URL中可见 URL中不可见
安全性

完整的form代码:

<form action="<%=request.getContextPath() %>/LoginServlet" method="post">
用户名:<input type="text" name="uname"/><br/>
密码:<input type="password" name="pwd"/><br/>
<input type="submit" value="登录"/>
<input type="reset" value="重置"/>
</form>
  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+"<br>"); //用getWriter()向屏幕输出信息
        out.println("密码==》 "+password);  //需要加<br>换行
        out.flush();
        out.close();
    }

这里完成Sevlet的一些配置。

配置代码如下:

<servlet>
    <description></description>
    <display-name>LoginServlet</display-name>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.feng.javawebstudy.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/LoginServlet</url-pattern>
  </servlet-mapping>

最终页面效果:

登录页面 显示信息页面

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

上一篇 下一篇

猜你喜欢

热点阅读