servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」使用servlet + jsp 这种方式,让业务代码和显示完全分离。页面需要的地址 tomcatPath + stuUploadPath + 文

大家好,欢迎来到IT知识分享网。

1.servlet

是一个类,是一个java文件

用来接收、处理、响应页面请求

一个类怎么样才能成为一个servlet

继承HttpServlet

使用servlet + jsp 这种方式,让业务代码和显示完全分离

jsp: 只做显示

servlet: 业务逻辑处理,接收请求,处理之后,响应页面给浏览器

2.第一个servlet

需求: 定义一个servlet,当页面请求/hello的时候,自定义的servlet接收、处理这个请求,并响应“HelloWorld” 并浏览器

1)定义HelloServlet

2)编写

a) HelloServlet 继承HttpServlet

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

b) 重写父类的service方法,这个方法为入口方法

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

3)请求地址和servlet之间的映射配置

web.xml中

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

4)部署工程

5)启动tomcat

6)浏览器访问http://localhost:8080/teacher_servlet/hello

3.访问执行流程

浏览器请求http://localhost:8080/teacher_servlet/hello

1)tomcat启动的时候,会加载webapps目录下所有的应用,加载应用的时候,会解析WEB-INF下的web.xml文件

2)浏览器访问http://localhost:8080/teacher_servlet/hello

3)tomcat接收到浏览器请求,先解析端口后面的应用名,确定请求的是哪一个应用

–确定请求应用为 teacher_servlet

4)tomcat截取请求地址 /hello

5)tomcat会到web.xml中寻找请求地址匹配的servlet-mapping标签

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

6)找到之后,会继续找servlet-name对应的servlet标签对象

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

–找不到,就会到webRoot下找具体的资源,再找不到,404

7)拿到servlet-class标签值,也就是指定的servelt类地址,然后创建这个类的实例

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

HttpServlet helloServlet = Class.forName(addr).newInstance();

8) tomcat会调用helloServlet.service(req,resp)方法

9)线程在运行的时候,因为实例是HelloServlet,所以线程会执行子类HelloServlet.service()方法

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

10) HelloServlet接收到了请求,处理,并通过response响应文本给浏览器

4.servlet生命周期

生命周期

实例化, 初始化,服务阶段, 销毁

阶段 执行时间 执行次数

实例化 ———————第一次被访问的时候———-1

初始化———————-第一次被访问的时候————1

服务阶段——————–每次被访问的时候—————N次

销毁————————–服务器正常停止的时候————1次

servlet是单例还是多例??

–单例类

单例类,需要小心全局变量!!!!!

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

5.servlet 与jsp

servlet中可以响应html

jsp中又可以写代码

jsp就是一个servlet

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

HttpJspBase继承HttpServlet

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

6.servlet正确使用

重写方法:最末端的do方法

public void service —》对外的公共方法

protected void service -请求的分发,根据提交方式

do….—–》请求处理

请求方式get—》重写doGet方法

请求方式post–>重写doPost方法

如果请求方式既有get,也有post—>重写doGet,doPost

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

从今往后!jsp中不允许出现小脚本

7. 项目重构

1)登录

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

a)编写LoginServlet

继承HttpSevlet

重写哪个方法?–》(取决于login.jsp中的提交方式)doPost方法

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

重定向,路径处理:需要带上appName

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

b)web.xml配置

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

c) main.jsp

d)修改login.jsp中的提交地址

2) 查询学生列表

main.jsp 添加“查询所有学生”按钮

需求:点击“添加所有学生”—》页面需要展现所有的学生数据

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

流程分析

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

今天练习:

登录,查询所有, 查详情

查详情

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

修改:

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

StuDetailServlet和StuEditBeforServlet 重复率比较高

stuDetail.jsp和stuEdit.jsp重复率也比较高

— servlet合并

–jsp合并

提示: 使用来源标识作为参数

jsp中,使用c:if标签

表单action请求地址之后,不适合加参数

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

退出功能

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

8.log4j日志使用

1)导包

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

2)导配置文件

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

配置文件放在src根目录下,或者config资源目录的根目录

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

3)代码中使用log4j

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

异常也有四种级别

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

9.过滤器

目前工程中的权限:

jsp

servlet

jsp:

提取公共的jsp页面、

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

其他页面引用

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

servlet:

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

过滤器:

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

过滤器使用

1)自定义一个类 实现Filter接口, javax.servlet.Filter

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

2)实现接口中的方法

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

3)web.xml中配置过滤器

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

今天练习:

1.servlet继续

2.权限过滤器

3.免校验的判断,提取成私有方法

需求: String noAuth = “.js,.jpg,/login.jsp,.png”

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

硬编码:

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

配置文件:

不是只有.properties才是配置文件

txt也可以是配置文件,xls也可以是配置文件,xml也可以是配置文件

常用: .properties .xml

properties体现不出层级关系,简单的key,value

xml 体现层级,或者说对象的概念

过滤器配置参数:

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

取值,在代码中,从过滤器配置对象中取

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

配置全局参数

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

代码中取值

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

同理,servlet中也可以配置初始化参数,也可以通过上下文取全局参数

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

servlet默认是在第一次被访问的时候初始化,如果想要tomcat启动的时候初始化,使用标签

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

10.mvc模式

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

11.servlet文件上传

新需求: 每个学生信息中需要展示照片

1)添加图片上传

2)修改也有图片修改

3)列表页展示图片

4)详情页要展示

首先要知道,图片是怎么上传的?

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

代码:

1) jsp

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

2)servlet

导包

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

如果form表单中有多个input

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

代码中,需要分开处理(普通文本域和file控件需要分开处理)

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

文件如何与数据相关联?

1.数据库数据中,表数据中,有一个字段,肯定要可以和这个文件关联起来

字段1: 地址+文件名(重命名后)

字段2:原始文件名

如果上传的文件,文件名一致,那么会出现覆盖的情况

解决办法: 重命名

新需求: 每个学生信息中需要展示照片

1)添加图片上传

a)数据库表添加字段

实体类

jsp-servlet

jsp(添加file,修改method,enctype)

servlet

取参要改

上传文件

保留文件路径

2)修改也有图片修改

3)列表页展示图片

4)详情页要展示

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

ls 查看当前文件夹下有什么文件和文件夹

cd upload 进入upload目录

pwd 查看当前目录的路径

今天练习:

1)添加学生信息,添加图片上传

上传图片的访问

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

如果图片上传地址 uploadPath + 文件名

C:\Tomcat601\webapps\upload\1513819315113.jpg

数据库存储,文件名:\1513819315113.jpg

页面需要的地址 tomcatPath + 文件名

/upload/1513819315113.jpg

<img src=”${tomcatPath}${student.imgUrl}” />

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

如果图片上传地址:uploadPath + stuUploadPath + 文件名

C:\Tomcat601\webapps\upload\stuImg\1513819315113.jpg

数据库存储:stuUploadPath + 文件名

\stuImg\1513819315113.jpg

页面需要的地址 tomcatPath + stuUploadPath + 文件名

/upload/stuImg/1513819315113.jpg

<img src=”${tomcatPath}${student.imgUrl}” />

在开发过程中,

文件上传目录和tomcat,不会在一起。是分开,独立的两个目录

怎么访问呢??

tomcat虚拟目录

比如

http://localhost:8080/resource/1513819315113.jpg

tomcat有个虚拟目录配置

/resource – D:\upload

当访问/resource 那么tomcat会到D:\upload目录下去找

配置:

在tomcat/conf/server.xml的host标签中配置Context标签

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

servlet大家都陌生了吧,今天带着大家回顾一下老古董「建议收藏」

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/7045.html

(0)
上一篇 2023-01-03 09:53
下一篇 2023-01-03 09:53

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信