一、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 stuList = stuService.getAllStudents();

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

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

这是修改后模式:MVC模式

三、举例

1、建立实体类

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

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包

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 servletlis_Java学习(六)servlet 的引入相关推荐

  1. JAVA Web学习篇--Servlet

    Servlet由来 做过BS项目的人都知道,浏览器可以依据HTML静态标记语言来显示各式各样的网页.可是假设我们须要在网页上完毕一些业务逻辑:比方登陆验证.或者说网页显示的内容在server的数据库中 ...

  2. JAVA Web学习之servlet开发

    01.servlet开发入门 动态web资源开发有两种技术:Servlet和JSP,只有把Servlet学明白了才能学JSP. Sun公司在其API中提供了一个Servlet接口,用户若想用一个动态w ...

  3. Java基础学习之Servlet 运用学习

    Servlet 简介 Servlet 是什么? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上 ...

  4. Java多线程学习六:使用线程池比手动创建线程好在那里以及常用线程池参数的意义

    为什么要使用线程池 首先,回顾线程池的相关知识,在 Java 诞生之初是没有线程池的概念的,而是先有线程,随着线程数的不断增加,人们发现需要一个专门的类来管理它们,于是才诞生了线程池.没有线程池的时候 ...

  5. java基础学习—— 六

    一.循环结构的4个要素 ①初始化条件 ②循环条件 -->boolean类型 ③循环体 ④迭代条件 二.for循环 for(①;②;④){     ③; } 执行过程:① - ② - ③ - ④ ...

  6. java并发学习8:问题引入

    1.小故事 老王(操作系统)有一个功能强大的算盘(CPU),现在想把它租出去,赚一点外快 小南.小女(线程)来使用这个算盘来进行一些计算,并按照时间给老王支付费用 但小南不能一天24小时使用算盘,他经 ...

  7. Java基础学习——第六章 面向对象编程(下)

    Java基础学习--第六章 面向对象编程(下) 一.关键词:static 1. static关键字的引入 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new ...

  8. Java基础学习——第十六章 Java8新特性

    Java基础学习--第十六章 Java8 新特性 Java8(JDK8.0)较 JDK7.0 有很多变化或者说是优化,比如 interface 里可以有静态方法和默认方法,并且可以有方法体,这一点就颠 ...

  9. Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作

    此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面 ...

最新文章

  1. 容器间通信_Vue组件间通信的6种方式,前端工程师人人都会,网友:太简单了...
  2. 今日 Paper | 手部和物体重建;三维人体姿态估计;图像到图像变换等
  3. 如何提高Linux下块设备IO的整体性能?
  4. Android运行Socket项目时出现错误 Error: ShouldNotReachHere()
  5. solr7.4 centos7安装
  6. React开发(208):react代码分割在嵌套组件中更新 Context
  7. 边缘指示函数matlab,matlab图像处理——傅立叶变换边缘提取
  8. 金融数学与计算机专业,金融数学专业就业方向及前景分析(解读)
  9. 全新设计的 Xcode 12
  10. 系统学习机器学习之神经网络(三)--GA神经网络与小波神经网络WNN
  11. 苹果6s上市时间_苹果6s主板坏了的症状,苹果6s换主板多少钱
  12. 非IE浏览器实现IE功能(浏览器加载OCX控件)——IE Tab
  13. Android 蓝牙开发 BLE(低功耗) 摩拜单车共享汽车开门实例
  14. 焦作网络赛K. Transport Ship
  15. Ubuntu linux下运行xv6
  16. JAVA 的性能优化
  17. 短文:U盘物理写保护原理
  18. EF Core 执行SQL语句和存储过程
  19. 敏涵控股集团董事长刘敏不忘初心 做新时代的铿锵玫瑰
  20. 关于WIN10“网络重置”后连不上网的解决方法

热门文章

  1. Android含文档server结束(client UI接口异步请求的一部分)三
  2. SCOM 2012 R2监控Microsoft Azure服务(2)配置Azure监控
  3. Android漫游记(1)---内存映射镜像(memory maps)
  4. c++ windows下declspec
  5. CoreTextHyperlinkView
  6. Linux基础自学记录六-引导流程解析2
  7. web项目中用户登录的具体流程
  8. 学习设计模式 - 六大基本原则之开闭原则
  9. Tomcat URL重写
  10. 深入浅出TensorFlow(二):TensorFlow解决MNIST问题入门