一、什么是servlet?
servlet+Applet 服务端小程序 运行在java服务器端 可以用来接用户的请求
web.xml 部署描述文件
classes字节码文件
二、在web.xml进行配置servlet
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.servlet.HelloServlet(类全名)</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>
三、访问服务器的方式
http://localhost:8080
访问servlet的方式
http://web服务器ip地址:端口号/web应用名(在webapps下改的名)/资源名(url中的)
四、服务器两种运行模式
1.运行模式
2.debug模式
区别:1.run模式无法打断点调试 2.debug模式可以一步一步打断点
区别:2.run模式:jsp和web.xml中的改动会生效,servlet发生改变,不会生效,
debug模式:jsp和web.xml,servlet都会改变
tomcat会自动检测代码的变化,自动帮你从新加载效率低
还是推荐使用run模式,除非一步一步来悬着使用debug模式
小技巧:改动servlet后,如果想让它生效可以在web.xml中打两个空格,这样tomcat会自动帮你从新加载新的servlet,从新帮你new对象,因为run模式web.xml变了会从新加载
五、乱码问题
1.服务器给客户端写的时候乱码
服务器输出的默认方式是iso-8859-1
处理:response.setcontentType(“text/html;chartset=utf-8”);
作用:1.设置服务器响应的编码方式为utf-8
2.提示客户端使用utf-8解码
2.客户端给服务器传数据时
处理:request.setcharacterEncoding(“utf-8”);
servlet中加入,只对post有效
get 需要修改tomacat/conf/server.xml 中的71行 加URIEncoding=”utf-8”
六、为什么会有servlet?
servlet最初的目的,是为了给用户输出信息,比较麻烦,因此出现了jsp技术,简化servlet输出
servlet现在的用途:
控制器:相当于项目经理
1.填充数据 2.调用业务逻辑 3.转发视图
七、mvc设计模式(面试题)
一:model模式
1.数据模型 vo category
2.业务模型: categroyservice
二.v:view视图 给用户显示信息
三。c:controller 控制器
八、java ee三层架构
1.持久层
DAO+vo
职责:负责把数据持久化到数据库中
2.业务层 service
3.表现层
servlet+jsp
单一职责原则:一个类尽量只完成一个功能
九、servlet的生命周期
1.类加载
2.创建servlet对象
3.调用init()来初始化servlet配置信息
4.调用service();
5.destory()
destory()方法什么时候被调用?
1.服务器关闭时 2.应用被移除时 3.servlet对象长时间不用的时候,调用destory方法
6.类卸载
servlet的创建时机有两种:
1.用户第一次访问servlet的时候创建
2.Tomcat启动时就会把servlet对象创建出来
十、servlet是单例的
一个servlet类只会在堆中创建一个类的对象 只有一个servlet对象
相当于每来一个新的请求容器会为这个新的请求启动编程并且在改变成内调用service方法
十一。servletz是线程不安全的