java servletlis_Java学习(六)servlet 的引入

一、Servlet

1、了解Servlet

Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。最早支持Servlet标准的是JavaSoft的Java Web Server。此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。目前最新版本为3.0。

2、实现过程

Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:

客户端发送请求至服务器端;

服务器将请求信息发送至Servlet;

Servlet生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;

服务器将响应返回给客户端。

二、引入Servlet

将之前的例题代码进行分析,得出:代码套用的是下图的模式

f5499b9b1d1f595f67d99c933a601e74.png

此模式有问题:

1、  jsp需要呼叫javabean

StudentService stuService = new StudentServiceImpl();

List stuList = stuService.getAllStudents();

我们期待是把这2行代码去掉,让jsp页面更简洁

2、  缺少控制器(跳转用的)

97cdd8b5a7325d1b8d55dd0ccf570a0a.png

这是修改后模式:MVC模式

三、举例

1、建立实体类

参考二维表,考虑各个字段名字、类型

f9e3f8f2696856dff0dbeefeef80e228.png

1 public classHouse {2 privateString id;3 privateString name;4 privateString address;5 publicString getId() {6 returnid;7 }8 …//其它

2、 建立业务逻辑接口(HouseService)和实现(HouseServiceImpl)

接口:

1 public interfaceHouseService {2 public ListgetAllHouses();3 }

实现类:

1 @Override2 public ListgetAllHouses() {3 List houseList = new ArrayList();4 //1 光头强的家 森林188号5 //2 熊大的家 森林树洞一期3楼

6 House h1 = newHouse();7 House h2 = newHouse();8

9 h1.setId("1");10 h1.setName("光头强的家");11 h1.setAddress("森林188号");12

13 h2.setId("2");14 h2.setName("熊大的家");15 h2.setAddress("森林树洞一期3楼");16

17

18 houseList.add(h1);19 houseList.add(h2);20

21 returnhouseList;22 }

3、创建一个(Servlet)控制器,调用service获取数据集List。【把结果输送到jsp,并跳转过去】

3.1、建立action包

cb4eb425eafcfffd45b81e6647b1bbc3.png

3.2、创建Servlet

在action包中新建Servlet:

b97b7dd76ed18495c049b1be69bdb533.png

ec34f52347655027be8d5566487be994.png

4a41ef4539af155bd8970153fb90786d.png

f4d39eceab3a8cce328c0f3a568042ac.png

97842920842fd129ffb55795713679f7.png

3.3、填写测试代码

501e91a5ca90c53cba30d5c9395351c2.png

上面是测试跳转代码

1 request.setCharacterEncoding("UTF-8");

2

3 response.setCharacterEncoding("UTF-8");

4 response.setContentType("text/html;charset=UTF-8;pageEncoding=UTF-8");

5

6 PrintWriter out =response.getWriter();

7 out.println("你好申し訳ありませетийдоктор ");

上面这里输出具体的html代码的写法,注意:这个是反例,不应该在Servlet里面输出html内容,Servlet应该做控制器的功能。

3.5、建立一个show.jsp,取得request对象中的List

3b40e07c818e1b9a6c488adc695ecbd3.png

核心代码:request.getAttribute("houseList_label");

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值