java web
文章目录
1、servlet
servlet是javaweb开发的基石,与平台无关的服务器组件,它是运行在servlet容器,web应用的服务器,tomcat,负责与客户端进行通信。
servlet的功能:
1、创建并返回基于客户请求的动态HTML页面。
2、与数据库进行通信
使用servlet:
- servlet本身是一组接口,自定义一个类,实现servlet接口,这个类就具备了接收客户端请求和响应的功能。
- javax.servlet、java.lang、java.util、javax.sql,java指的是最基础的包,javax是后来扩展的包
- 通过访问路劲来访问到类,需要在webinfo里面的web.xml文件里面进行如下配置。
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.clsld.servlet.Myervlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/myservlet</url-pattren>
</servlet-mapping>
有两次种配置方法,基于注解的类和url进行映射、基于webservlet注解进行映射。
servlet的生命周期
1、当浏览器访问servlet的时候,tomcat会查询当前servlet的实例化对象是否存在,如果不存在,则通过反射机制动态创建对象,如果存在,则直接拿取调用
2、调用init方法完成初始化操作
3、调用service方法完成业务逻辑的操作
4、关闭tomcat时会调用destory的方法,释放当前对象所占用的资源。
Servlet的生命周期方法:
无参构造函数、init、service、destory
1、无参构造只调用一次,创建对象。
2、init是调用一次,初始化对象。
3、service调用n次,执行业务方法。
4、destory只调用一次,卸载对象。
ServletConfig
该接口是用来描述Servlet的基本信息
- getServletName()返回servlet的全类名
- getInitParameter(String key)获取init的参数的值(web.xml)
- getInitParameterNames() 返回所有的initparamter参数的值
- getServletContext() 返回servletcontext对象,他是servlet的上下文,整个servlet的管理者
servletcontext和servletconfig的区别
servletconfig作用于某个servlet实例,每个servlet都有对应的servletconfig,servletcontext作用于整个web应用,一个web应用对应一个servletcontext,多个servlet实例对应一个servletcontext。
Servlet --》GenericServlet – 》HttpServlet
HTTP的请求类型
- get 读取、
- post 保存、
- put 修改、
- delete 删除
- GenericServlet实现了servlet接口,同时为他的子类屏蔽了不常用的方法,子类只需要重写service方法即可
- Httpservlet继承genericservlet,根据请求类型进行分发处理,GET进去doGET方法,POST进去doPOST方法。
- 开发者自定义的servlet;类 只需要继承HttpServlet即可,重新doGET和doPOST
2、jsp
jsp本质上是一个servlet,jsp主要负责与用户交互的,将最终的界面呈现给用户,HTML+JS+CSS+JAVA的混合文件。
当服务器收到一个后缀是jsp的请求时,将该请求交给jsp引擎去处理,每一个jsp页面第一次被访问的时候,jsp引擎会将它翻译成一个servlet文件,再把web容器调用servlet完成响应。
单纯从开发的角度看,jsp就是在HTML中嵌入java程序,具体的嵌入方法有三种:
1、jsp脚本
<%
String str = "hello world";
System.out,println(str);
%>
2、jsp声明:定义java方法
<%!
public String test(){}
%>
3、jsp表达式:把java对象直接输出到页面上
<%=java变量%>
jsp内置对象9个
-
request:表示一次请求,HttpServletRequest
-
response:表示一次响应,HttpServletResponse
-
pageContext:页面上下文,获取页面信息
-
session:表示一次会话,保存用户信息HttpSession
-
application:表示当前的web应用,ServletContext
-
config:当前jsp对应的Servlet的ServletConfig对象,获取当前Servlet信息
-
out:先客户端浏览器输出数据,jspWriter
-
page:当前jsp对应的Servlet对象,Servlet
-
exception:表示jsp页面发生的异常,Exception
常用的是request,response,session,application,pageContext。
request的常用方法:
1、String getParameter(String key)获取客户端带来的参数
2、void setAttribute(String key,Object value)通过键值对的形式保存数据。
3、Object getAttribute(String key)通过key获取value
4、RequestDispatcher getRequestDispatcher(String path)返回一个RequestDispatcher对象,该对象的forward方法用于请求转发
5、String[] getParamterValues()获取客户端传来的多个同名参数。
6、void setCharacterEncoding(String charset)指定每个请求的编码
session,用户会话
服务器无法识别每一次http请求的出处(不知道来自于哪个终端),他只会接收到一个请求信号,所以存在一个问题:将用户的响应发送给其他人,必须有一个技术来让服务器知道请求来自于哪,这就是会话技术。
会话:就是客户端和服务器之间发生的一系列连续的请求和响应的过程,打开浏览器进行操作到关闭浏览器的过程。
会话状态:指的是服务器和浏览器在会话过程中产生的状态信息,借用会话状态,服务器能够把属于同一次会话的一系列请求和响应关联起来。
实现会话有两种方式:
- session
- cookie
属于同一次会话的请求都有一个相同的标识符,sessionID
sesison常用的方法:
- String getid()获取sessionID
void setMaxINactiveInterval(int interval)设置session的失效时间,单位为秒
- int getMaxInactiveInterval()获取当前的失效时间
- void invaildate()设置session立即失效
- void setAttribute(String key,Object value)通过键值对存储数据
- Object getAttribute(String key)通过键值回去对应的数据
- void removeAttribute(String key)通过键值删除对应的数据
3、Tomcat记录
1、在浏览器输入一个域名,回车
2、检测本机的C:\Windows\System32\drivers\etc\hosts配置文件下面有没有这个域名映射
有:直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问
没有:去DNS服务器寻找,找到的话返回,找不到的话报错
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kHm8a5Vs-1597151382089)(C:%5CUsers%5Cclsld%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20200809122254625.png)]
发布一个web网站
将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问网站该有的结构
--webapps:Tomcat服务器的web目录
-root
-clsld:网站的目录名
-web-INF
-classes:java程序
-lib:web应用所依赖的jar包
-web.xml:网站配置文件
-index.html 默认的首页
-static
-css
-style.css
-js
-img
-......