JavaWeb总结
1.web程序:可以供浏览器访问的程序就是web程序
我们在网上浏览能够浏览到的任何信息都是存在于这个世界的某个角落的计算机中的。这些信息被放在指定的文件目录下。一个web应用程序由静态web和动态web组成,里面常常由含有很多的资源比如:html、css、js、jsp、servlet、java程序、jar包、配置文件。
2.静态web 动态web
提供给所有人看的数据始终不会发生变化的就是静态网页。提供给所有人看的数据始终会发生变化,每个人看到的不一样,那就是动态网页。
静态web的请求:客户端发出一次请求以后,由于这是静态web,webService就将请求传至服务器然后获取到对应的资源,然后返回给客户端。
动态web的请求:客户端发出一次请求后,获取到对应的动态web资源,有可能还会调用底层的数据库,然后将资源进行返回。
3.Tomcat服务器
一个用装载servlet资源的容器
使用tomcat的注意事项:
- 要能够识别tomcat中主目录下的每个文件夹的功能
- 会使用脚本文件进行启动服务器
- 我们可以修改tomcat的端口号,默认的是8080,在配置文件目录下的server.xml文件中
请你谈谈网站是如何进行访问的?
当我们输入我们需要访问的网址的以后,系统会首先去检查本机的配置文件下的域名映射(即我们电脑的本地配置文件,默认情况下里面是有localhost 127.0.0.1这样的配置)如果我们访问你的对应的地址在我们的配置文件中拥有对应的映射路径,那么他就会按照配置文件的信息进行跳转。如果没有对应的映射,那么他就会去DNS服务器上面寻找对应的资源,找到了就返回,找不到就返回404。
4.HTTP协议:
5.servlet
概念:
Servlet是一个运行在web服务端的java小程序
-
它可以用于接收和响应客户端的请求
-
要想实现Servlet功能,可以实现Servlet接口,继承GenericServlet或者HttpServlet类,重写里面的doGet、doPost方法
-
每次请求都会执行service方法
Servlet的体系结构:
Servlet -- 接口
|
GenericServlet -- 抽象类 将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象
|
HttpServlet -- 抽象类 1. 定义类继承HttpServlet 2.复写doGet/doPost方法
实现servlet的步骤
1.新建web程序
2.新建类继承Httpservlet 重写doGet doPost方法
3.在web.xml中配置 servlet类 和 映射Servlet与URL绑定 或者使用@WebServlet注解
4.配置tomcat 运行
javax.servlet.Servlet接口中的方法
-
init()当第一次访问调用时,只调用一次
-
destroy()服务器关闭时,Servlet销毁时调用
-
service()每次访问是调用
-
getServletConfig() 返回ServletConfig对象,用于初始化参数
-
getServletInfo() 返回String 用于获取Servlet 信息
生命周期
-
装载web.xml
-
创建构造函数
-
初始化init
-
提供服务service
-
销毁destroy
Response对象
-
封装了Http响应消息
-
常用方法
-
setStatus()设置状态码
-
setHeader()
-
getOutputSream()
-
getWriter()
-
setContentType(“text/html;charset=utf-8”)
-
-
重定向
-
sendRedirect(资源路径)
-
浏览器发起两次请求 ,地址栏会发生变化,可以重定向到外部服务器
-
四大作用域
1.ServletContext接口
-
概述
-
一个应用只有一个ServletContext对象
-
作用:用来存储项目中的一些全局参数,供多个Servlet进行调用
-
-
生命周期
-
服务器启动,ServletContext 对象创建
-
服务器关闭,ServletContext对象销毁
-
-
常用方法
-
setAttribute()
-
getAttribute()
-
getInitPramaeter()
-
getInitPramaeterName()
-
getRealPath()获取指定文件带有的硬盘盘符的绝对路径
-
getResoureAsStream() 返回inputStream对象,获取指定文件,并使用流读取
-
removeAttribute()
-
-
获取ServletContext对象方法
-
javax.servlet.ServletContext.getServletContext()
-
javax.servlet.ServletRequest.getServletContext()
-
2.ServletRequest
-
子接口HttpServletResquest
-
常用方法
-
setAttribute()
-
getAttribute()
-
getPramaeter()
-
getPramaeterValues()
-
getParameterEncoding()
-
getResquestDispatcher()
-
getContextPath()获取模拟目录
-
getRequsetURL()
-
-
3.HttpSession接口
-
存储一次会话中的参数
-
常用方法
-
setAttribute()
-
getAttribute()
-
removeAttribute()
-
getId()
-
getMaxIncativeInterval()
-
setMaxIncativeInterval(int interval)
-
getServletContext()
-
getValues(String name)
-
PageContext
- 用于JSP页面的上下文信息保存
会话
-
Cookies和Session技术都是为了使无状态的HTTP成为有状态的。
-
Cookies可以用来跟踪会话,也可以保存用户的特点或者用户名密码之类的信息。Session用来跟踪会话。
cookie
客户端会话技术,将数据保存到客户端
-
常用方法
-
new Cookie(String name, String value)
-
response.addCookie(Cookie cookie)
-
request.getCookies()
-
setMaxAge(int seconds)
-
setPath(String path)设置cookie的获取范围
-
setDomain(String path) 不同tomcat服务器间cookie共享问题
-
session
(用户回话)用于保存与浏览器对应的数据
-
request.getSession();
-
getAttribute(String name)
-
setAttribute(String name, Object value)
-
removeAttribute(String name)
过滤器Filter
-
过滤器是服务器端的组件,它可以截取用户端的请求与响应信息,并进行过滤
-
生命周期
-
init()
-
doFilter()
-
destroy()
-
-
实现步骤
-
创建过滤器类,实现javax.Servlet.Filter接口
-
在web.xml注册
-
也可以使用注解的方式注册@WebFilter
-
-
url-pattern过滤写法
- url-pattern过滤写法/ 与 /* 含义不同,前者指向根路径,后者代表所有
-
过滤链
-
执行顺序
- 根据web.xml中的
配置的先后顺序
- 根据web.xml中的
-
放行顺序
- 按照执行的顺序倒序执行
-
监听器
-
Listener的作用对Web应用对象的行为进行监控
-
实现步骤
-
实现XxxListener接口
-
在web.xml中配置
-
注解方式配置@WebListener
-
-
三种监听对象
-
ServletContext - 对全局ServletContext及其属性进行监听
-
HttpSession - 对用户会话及其属性操作进行监听
-
ServletRequest - 对请求及属性操作进行监听
-