您当前的位置: 首页 >  宝哥大数据

BaseWeb01

宝哥大数据 发布时间:2017-11-17 21:57:38 ,浏览量:2

1.1、创建web项目Dynamic Web Project, 注意勾选自动生成web.xml

1.2、创建html文件, 注意选择模板(4.0.1.transitional)

1.3、在servers中添加已启动的项目

1.4、启动server, 访问

1.5、注意创建的页面要在web.xml的webcom-file-list中,否则访问要加上具体的页面



=======2、Servlet基础。========

Servlet可以完成java程序运行到web环境中。

2.1、依赖于tomcat的运行环境的servlet-api.jar, 必须创建动态wed项目。

2.2、创建一个Servlet,要继承HttpServlet, 实现doGet方法

2.3、在web.xml中添加servlet, servlet-mapping

2.4、访问及问题

2.5、注释掉super.doGet(res, resp), 因为super.doGet直接跳转。

2.6、servlet执行流程。

在上面网页执行get请求, 所以在Servlet就会执行对应的doGet()。

http://localhost:8080/test01/myservlet

http://ip:port/项目名/url-parttern

2.7、另外有一种创建Servlet类型, 在Eclipse中创建Servelet而不是类。它会自动穿件url-parterrn,和name,不用在web.xml中添加映射。





========3、获取请求参数===========

3.1、获取参数名

        //http://localhost:8080/test01/myservlet?username=chb
        //获取参数名
        Enumeration pas = req.getParameterNames();
        while(pas.hasMoreElements()){
            System.out.println(pas.nextElement());
        }

4、与form表单配合

4.1、创建一个register.html,设置action=”/test01/register”,
注意此处写为”/register”总是找不到对应的Servlet

4.2、创建RegisterServlet

package com.chb.servlet01;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class RegisterServlet extends HttpServlet{

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        //获取参数值
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String sex = req.getParameter("sex");
        String address = req.getParameter("address");
        //获取同个参数的多个值,使用getParameterValues,返回一个String[]
        String[] interests = req.getParameterValues("interest");

        resp.setContentType("text/html;charset-UTF-8");
        PrintWriter pw = resp.getWriter();
        pw.println("");
        pw.println("

my servlet

"); pw.println(username); pw.println(password); pw.println(sex); pw.println(address); for (String interest : interests) { pw.print(interest); } pw.println(""); pw.println(""); } }

4.3、在web.xml中配置映射。

    
        registerServlet
        com.chb.servlet01.RegisterServlet
    
    
        registerServlet
        /register
    

4.4、访问register.html, 跳转到RegisterServlet

4.5、从上面的结果可以看到两个问题

4.5.1、所有的参数都暴露在url上,这是很危险的。

4.5.1.1、解决方法:使用post请求

4.5.1.2、设置表单请求方式为post

 //默认为get请求方式
 

4.5.1.3、修改RegisterServlet, 实现doPost()方法。

4.5.2、乱码问题。

4.5.2.1、第一种方法: 在server.xml中添加URIEncoding="UTF-8"

4.5.2.2、注意此种方法不能够解决post的乱码。

4.5.2.3、第二种方法: 在doGet()最开始加req.setCharacterEncoding("UTF-8");。解决post的乱码

关注
打赏
查看更多评论

宝哥大数据

暂无认证

  • 2浏览

    0关注

    985博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录