笔者真的是没有办法,如果笔者还是小萌新,笔者一定会好好学习,但是笔者已然老腊肉了,春招在即笔者也只能够整理知识点了。
要深入学习还是建议看书,笔者读完Servlet发现关于Java Web的很多地方都通了,真的建议去学习一下。
1、什么是Servlet
servlet是用来处理客户端请求并生成动态网页的Java类。
2、Servlet的生命周期(相当重要)
①加载servlet:可以在第一次调用的时候加载,也可以在配置文件中设置成在应用程序启动时加载。
②初始化:在第一次请求服务时调用一次init()
③处理请求:每次请求都会调用service()
④销毁:关闭应用程序调用destroy()释放相应资源
3、Servlet安全问题
一个应用程序中只会为每个Servlet类型创建一个Servlet实例,但是这个实例却要同时处理多个请求,因此会产生“一致性”问题
我们可以通过少使用全局变量,和Synchronized加以控制
4、Tomcat如何创建Servlet,用了什么原理
Tomcat读取配置文件中的注册信息,加载Servlet,用反射创建实例
5、Servlet和JSP
①JSP的本质就是Servlet,它是Servlet的一种简化
②JSP中的EL和JSTL,实现前后端分离
6、常用的类和方法
HttpServletRequest
String getParameter(filedname):得到表单参数的值
Cookie[ ] getCookies():获取Cookie
String getHeader(name):得到首部字段
String getMethod():得到方法
HttpSession getSession():返回一个Session,如果没有就创建一个
一般来说httpRequest中有获取请求报文中信息的方法,而httpResponse中则有向相应报文中插入信息的方法
HttpServletResponse
void addCookie(cookie):向响应报文中添加Cookie
void addHeader(name, value):向响应报文添加首部字段
response.sendRedirect():将响应重定向到其他JSP页面
ServletConfig
String getInitParameter(name):获得初始化参数
ServletContext getServletContext():获得Servlet上下文对象
ServletContext
void setAttribute(name, object):设置属性
Object getAtrribute(name):获得属性
void removeAtrribute():移除属性
7、forward(转发)和redirect(重定向)的区别
forward:requset.getRequsetDispatcher(“/***.jsp”).forward(request,response)
将客户端的请求转发给别的JSP页面处理,服务器的行为
redirect:response.sendRedirect(“/***.jsp”)
重定向的地址栏会改变,重新发起一次请求,客户端的行为
8、使用部署描述符的优势
使用部署描述符可以进行更加细致的控制
9、Session管理
①URL重写
②隐藏域
这两种方式会将信息暴露在URL中,并且页面会产生很多的链接。隐藏域唯一的优势就是可以传递更多的信息。
③Cookie
Cookie就是在客户端和服务器之间来回传递的信息块儿。可以通过getMaxAge()设置其存活时间
④HttpSession
Session就类似在服务器端存储的一个键值对的表,客户端利用SessionID获得相应的会话信息。
10、Cookie与Session的区别
11、JSP的四种作用范围
PageContext:作用于整个页面
ServletRequest:作用于一次请求
HttpSession:作用于一次会话
ServletContext:作用于整个应用程序
12、JSP内置隐藏对象
request :HttpServletRequest
reponse:HttpServletReponse
pageContext:PageContext
session:HttpSession
application:ServletContext
out : JspWrite
config:ServletConfig
page:HttpJspPage
exception
13、JSP静态包含和动态包含的区别
①静态包含是Jsp命令,动态包含是Jsp动作
②静态包含在编译期合成了一个文件,动态包含运行时合成一个文件
③动态包含可以包含HTML文件,动态包含只能包含JSP文件
14、怎样避免JSP页面自动生成Session
<%@ page session=”false”>
15、生成自定义标签
①继承SimpleTagSupport实现doTag()方法
②使用标签文件中的标签命令
16、监听器
按照范围划分
ServletContext
HttpSession
ServletRequest
17、Filter过滤器:对资源采取某些控制措施
生命周期
Init()
doFilter()
destroy()
FilterChain.doFilter():会引发下一个过滤器的调用,若没有下一个过滤器则调用资源本身。
18、DAO模式
DAO(数据访问对象)模式:把数据库相关的操作分离成独立的模块。
19、异步处理
支持为长时间运行的任务重新分配一个线程,让请求处理线程返回到池中处理其它任务。
20、动态注册
利用反射机制动态创建web对象
21、SpringMVC与Structs
Structs采用Filter作为控制器,SpringMVC使用Servlet作控制器
SpringMVC在开发效率和性能上要高于Structs
原文:https://www.cnblogs.com/mgblogs/p/12046156.html