码迷,mamicode.com
首页 > 编程语言 > 详细

Java学习(六)servlet 的引入

时间:2017-05-21 20:39:31      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:举例   lis   utf-8   3.3   out   type   inf   ace   响应   

一、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

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

技术分享

此模式有问题:

1、  jsp需要呼叫javabean

  StudentService stuService = new StudentServiceImpl();

  List<StudentInfo> stuList = stuService.getAllStudents();

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

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

技术分享

这是修改后模式:MVC模式

三、举例

1、建立实体类

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

技术分享

1 public class House {
2     private String id;
3     private String name;
4     private String address;
5     public String getId() {
6         return id;
7     }
8//其它

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

  接口:

1 public interface HouseService {
2     public List<House> getAllHouses();
3 }

  实现类:

 1 @Override
 2     public List<House> getAllHouses() {
 3         List<House> houseList = new ArrayList<House>();
 4         //1    光头强的家    森林188号
 5         //2    熊大的家    森林树洞一期3楼
 6         House h1 = new House();
 7         House h2 = new House();
 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         return houseList;
22     }

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

3.1、建立action包

技术分享

3.2、创建Servlet

在action包中新建Servlet:

技术分享

 技术分享

技术分享

技术分享

技术分享

3.3、填写测试代码

技术分享

上面是测试跳转代码

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

技术分享

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

 

今天的学习到此告一个段落,明天会继续的进行学习并更新改文章。

 

Java学习(六)servlet 的引入

标签:举例   lis   utf-8   3.3   out   type   inf   ace   响应   

原文地址:http://www.cnblogs.com/Mingsnow/p/6875270.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!