servlet@nana
xml文件的解析过程
http协议
tomcat讲解
web2.5和3.0以上版本的区别
servlet的生命周期
获取客户端提交参数和响应客户端的参数
请求转发和重定向
get和post方法的区别
cookie和session
filter、servlet和listener
1.xml解析
/**
* 通过Dom4j解析xml文件
* 1.导入相关的jar包
* 2.获取SAXReader对象
* 3.通过SAXReader中的reader方法加载需要解析的xml文件
* 4.通过第三步获取Document对象获取相关的xml文件信息
* @param args
* @throws DocumentException
*/
public static void main(String[] args) throws DocumentException {
// 1.获取SAXReader对象
SAXReader reader = new SAXReader();
// 2.加载需要解析的xml文件 read 完成解析和数据的封装
Document doc = reader.read(new File("xml/student.xml"));
// 3.从Document对象中获取相关的数据 root
Element root = doc.getRootElement();
System.out.println(root.getName());
// 获取第一个子节点
Element student = root.element("student");
// 获取节点的id属性
Attribute id = student.attribute("id");
System.out.println(student.getName()+" "+id.getValue());
// 获取student节点下面的 name age address节点的内容
Element name = student.element("name");
Element age = student.element("age");
Element address = student.element("address");
System.out.println(name.getTextTrim()+" "+age.getTextTrim()+" "+address.getTextTrim());
// ---------通过循环的方式获取所有的节点----------
List list = root.elements();
for (Element element : list) {
System.out.println(element.getName());
}
}
2.http协议
HTTP(HyperTextTransferProtocol)是超文本传输协议;
HTTP 协议定义服务器端和客户端之间文件传输的沟通方式,HTTP协议采用了请求/响应模型。
客户端的向服务器请求一个文件。 最基本的过程是:
A.客户端连接一个主机;
B.服务器接收连接,
C.客户端请求一个文件,
D.服务器发送一个应答.
3.tomcat
安装
启动:bin/startup.bat(在bin目录下)
访问: http://localhost:8080
修改端口号:vim servser.xml中的port端口号即可
4.web2.5和3.0以上版本的区别
A.2.5只支持xml文件配置servlet
B.3.0以上的版本支持注解配置@webservlet("/servlet")
5.servlet的生命周期
public class ServletDemo01 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("我是post提交方式,提交我的请求");
}
@Override //生命周期,初始化
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
@Override //生命周期,程序启动执行一次
public String getServletInfo() {
return super.getServletInfo();
}
@Override //生命周期,销毁
public void destroy() {
super.destroy();
}
6.获取客户端提交参数和响应客户端的参数
A.获取客户端提交的参数:
如前端页面提交登录的username和password:
string username=request.getParameter(“username”)
string password=request.getParameter(“password”)
B.响应客户端参数
如给前端页面返回一个登陆成功或者登录失败的提示msg
这时需要:
Msg msg=new msg(1,“密码错误”);
response.getWrite().print(msg);
把错误信息返还给前端,前端通过ajax或者别的方式获取错误提示
7.请求转发和重定向
A.请求转发:request.getRequestDispatcher( “/XXX”).forward(req,resp);
B.重定向:response.sendRedirect("/XXXX")
7.1二者本质区别:
请求转发是一次请求一次响应,而重定向是两次请求两次响应。
请求转发地址栏不会变化的,重定向地址栏发生变化。
请求转发路径不带工程名,重定向需要带工程名路径。
请求转发只能在本网站内部,重定向可以定向到任何网站。
7.2
8.get和post方法的区别:
A.get方法提交的数据拼接在地址栏url上,post方法提交的数据存储在body中;
B.get方法使用的是doget方法,post提交方式使用的是dopost方式;
C.get方法处理中文乱码的方式是:
request.setCharacterEncoding(“utf_8”);
post方法处理中文乱码的方是:
response.setContentType(“text/html;charset=utf_8”)
D.get方法url大小不能>1kb,post方法的url大小不能超过2kb
E.get 的速度比post快;
9.cookie和session
cookie是文本信息,把客户端的信息保存在客户的浏览器中,当再次访问此网址时,浏览器会把cookie和用户信息交给浏览器,检查该cookie从而检查用户的状态。
session客户端浏览器访问服务器时,服务器把客户端信息保存到服务器中,当客户端浏览器再次访问时,直接在session中查询客户端状态即可。
cookie和session的区别:
A.存放位置:cookie信息存储在客户端浏览器上,session信息存储在服务器上;
B.安全性:cookie不如session安全;
C.session会保存在服务器上一段时间,但是为了性能考虑,除了用户登录信息等重要信息以外,其他信息应该放在cookie中。
D.单个cookie可以保留的数据不超过4kb,部分网站限制一个站点只能保存一个cookie。
10.filter、servlet和listener
10.1 filter和servlet的区别:
从四个方面来讲:
概念、生命周期、职责和运行过程
A.概念:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态地生成web页面,它工作在客户请求和服务器响应的中间层;
filter:filter是一个可以服用的代码片段,可以用来转换http请求、响应头信息,filter不能像servlet那样产生请求和响应,只是对某一个资源的请求或者相应的修改。
B.生命周期:
servlet:1.请求第一次到来是执行init初始化方法,如果配置了loadOnstartup方法就会在启动的时候执行方法;
2.执行service,根据提交的方式采用doget或者dopost方法
3.当服务器重启或者关闭时执行destory方法
filter:1.当服务器开启式,执行init初始化方法;
2.当满足条件的请求到来时执行doFilter方法,对验证通过的请求执行放过chain.doFilter(req,resp),没有通过验证的方法执行拦截
3.当服务器重启或者关闭时,执行destory方法
C.职责:
filter主要用来字符编码过滤、验证用户登录、禁止页面缓存
servlet:动态生成web项目