java web核心编程_JavaWeb核心编程之(三.6)HttpServlet

之前都是集成的Servlet真的太过于繁琐了, Servlet接口提供了一个实现类 为HttpServlet  只要实现doGet 和doPost方法就可以了

仍然以一个表单为例

新建一个web工程

1 packagecom.xiaoan.test;2

3 importjavax.servlet.http.HttpServlet;4 importjavax.servlet.http.HttpServletRequest;5 importjavax.servlet.http.HttpServletResponse;6

7 public class TestHttpServlet extendsHttpServlet{8

9 /**

10 *11 */

12 private static final long serialVersionUID = 1L;13

14

15 public voiddoGet(HttpServletRequest req, HttpServletResponse resp){16 System.out.println("GET METHOD");17 }18

19 public voiddoPost(HttpServletRequest req, HttpServletResponse resp){20 System.out.println("POST METHOD");21 }22 }

编辑web.xml文件

1 <?xml version="1.0" encoding="UTF-8"?>

2

3 testHttpServlet

4

5

6 TestHttpServlet

7 com.xiaoan.test.TestHttpServlet

8

9

10 TestHttpServlet

11 /testHttpServlet

12

13

这样运行项目访问路径为http://localhost:8080/testHttpServlet/testHttpServlet  控制台会输出GET METHOD

写一个表单将其post提交到这个路径

在WebContent里面新建一个testform.jsp

1

2 pageEncoding="ISO-8859-1"%>

3

4

5

6

7

Insert title here

8

9

10

11

12

13

14

运行这个jsp页面, 直接点击提交 注意浏览器中的变化和控制台的输出为POST METHOD

HttpServletRequest   HttpServletResponse  这里面和Serlvet.service方法中使用方法可以认为完全一样

并且在HttpServlet 的父类GenericServlet 中获得了Servlet初始化 init方法中的ServletConfig为一个成员属性 可以直接调用

ServletResponse: 封装了响应信息, 如果想给用户什么响应, 具体可以使用该接口的方法实现

1> getWriter(): 返回PrintWriter对象. 调用该对象的pring()方法, 将把pring()中的参数直接打印到客户浏览器上

PrintWriter out = response.getWriter();

out.println("neirong");

2> 设置响应内容类型: response.setContentType("application/msword");

3> woid sendRedirect(String location): 请求的重定向(本方法为HttpServletResponse中定义)

练习

在web.xml文件中设置两个WEB初始化参数 user, password. 定义一个login.html, 里面定义两个请求字段 user, password. 此对其和web.xml文件中定义的请求参数是否一致,若一致, 就响应Hello: xxx, 不一致就响应Sorry: xxx

1GenericServlet:

1> 是一个Servlet. 是Servlet接口和ServletConfig接口的实现类. 但是是一个抽象类. 其中的servlet方法为抽象方法

2> 如果新建的Servlet程序直接继承GenericServlet会使开发更简洁

3> 具体实现:

1) 在GenericServlet中声明了一个ServletConfig类型的成员变量, 在init(ServletConfig)方法中对其进行了初始化

2) 利用servletConfig成员变量的方法实现了ServletConfig接口的方法

3) 还定义了一个init()方法, 在init(ServletConfig)方法中对其进行调用, 子类可以直接覆盖init() 在其中实现对Servlet的初始化

4) 不建议直接覆盖init(ServletConfig), 因为如果忘记写super.init(config); 而是还使用了ServletConfig接口的方法, 则会出现空指针异常

5) 新建的init(){} 并非Servlet的生命周期方法. 而init(ServletConfig)是生命周期相关的方法

2 HttpServlet:

1是一个Servlet 继承自GenericServlet. 针对于HTTP协议所定制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值