您当前的位置: 首页 > 

宝哥大数据

暂无认证

  • 0浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

BaseWeb01

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

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的乱码

这里写图片描述

关注
打赏
1587549273
查看更多评论
立即登录/注册

微信扫码登录

0.0772s