javaweb小结

xiaoxiao2021-03-01  56

一、tomcat 1. 配置文件 server.xml : 配置tomcat的参数,服务器启动时加载修改了一定要重启服务器 web.xml :每个web应用的web.xml文件都会继承该文件下所有的配置二、servlet 1. 一个java类实现了Servlet接口,我们就称之为Servlet 2. 默认的实现类 GenericServlet: 提供了getServletConfig和getServletContext方法 HttpServlet:覆写了service方法,将ServletRequest和ServletResponse强转为子类HttpServletRequest和HttpServletResponse判断请求方式,从而决定去调用doGet和doPost 所以,子类只需要覆写doGet 和 doPost 即可 3. Servlet的映射 Servlet需要在web.xml文件中做映射,web容器才能对Servlet进行初始化 <servlet> 为 servlet 起别名 <servlet-mapping>为 servlet映射访问路径以'/'开头,代表web应用 4. ServletConfig 读取servlet初始化信息 5.ServletContext 代表当前web应用,也被称为 servlet上下文 它是域对象,可以让多个servlet共享数据 读取web应用下的所有文件 getRealPath 获得绝对路径 getResourceAsStream获得输入流 6. 类加载读文件 Demo.class.getClassLoader().getResource().getPath();获得绝对路径 Demo.class.getClassLoader().getResourceAsStream()获得流三、request和response 1. request 获得ie发送的数据 常用方法 getMethod 获得请求方式 getRequestUri 获得请求资源名 getHeader 获得请求消息头 getParameter 获得请求参数 getParameterNames获得所有参数名 结合BeanUtils 使用 getRemoteAdress()获得来访者ip 请求转发 request.getRequestDispatcher("/index.jsp").forward(request,response); mvc 设计模式 servlet处理用户的请求,将结果转发给jsp 数据封装在javabean 获得请求参数中文乱码问题 get String result =new String(data.getBytes("iso-8859-1"), "utf-8"); post request.setCharacterEncoding("utf-8");

-------

mvc模式下:

response.sendRedirect 重定向 让其他servlet来处理,servlet让浏览器找其它servlet来处理 request.getRequestDispatcher请求转发 使用jsp来显示, servlet自己找其它jsp来显示

-------

2. response 向ie发送数据 response.getWriter()获得字符流 response.getOutputStream()获得字节流 两者不可同时调用 乱码问题 response.setContentType("text/html;charset=utf-8"); 文件下载 文件名中文乱码问题 原因在于文件名是跟着http头发送的需要进行url编码 讲解了url编码 请求重定向 response.sendRedirect("/day08/.....") response.sendRedirect(request.getContextPath()+ "/.....");四、 会话技术cookie 和 session 1. cookie 存在客户端浏览器 name=value 的形式 cookie需要设置有效时间才会缓存,否则只在浏览器进程有效 cookie.setMaxAge()如果设置为0,则命令浏览器立即删除cookie 设置有效路径 cookie.setPath(); 默认在当前路径有效 举例:/day07/servlet/CookieServlet -- 只在访问 /day07/servlet 开头的路径时才发送cookie cookie.setDomain();设置有效主机 案例: 显示曾经浏览过的商品 2. session HttpSession 存在服务器端的 底层是依赖cookie实现的 浏览器来访问服务器,web服务器创建一个session对象,并将sessionid以cookie的 形式发送给浏览器,浏览器再次访问服务器时会带着cookie来,服务器根据cookie 中保存的sessionid获得session对象为用户服务 session 默认失效时间为30分钟 在 web.xml 文件中可以设置 <session-config> <session-timeout>11</session-timeout> </session-config> 案例: 购物案例(实现多浏览器共享session) url重写(解决浏览器禁用cookie的问题) 防表单重复提交 用户登陆五、 jsp 1. jsp 工作原理 ie访问一个jsp,jsp引擎将jsp翻译成servlet ,剩下的事和servlet的访问过程一样 2. jsp语法 jsp指令 page指令 : import导包 session指定是否用session pageEncoding解决编码 jsp写java代码 jsp脚本表达式 jsp脚本片段 jsp声明 3. 九个隐式对象 configServletConfig applicationServletContext responseHttpServletResponse requestHttpServletRequest session HttpSession out JspWriter page this exceptionThrowable (需要配置isErrorPage) pageContextPageContext

pageContext主要功能,用于获得其他8大隐式对象

pageContext 也是一个域对象,但只是在当前jsp页面有效

4. web开发的四个域对象 page requestsession application 什么时候用 page: 用map不如用page request: 请求转发 session: 请求重定向 application : 全局数据六、 javabean javabean 特定写法的java类,必须有无参构造方法、属性私有、共有的setter和getter 七、 el表达式 数据访问语言 用于取数据 从四个域取对象 取javabean的属性 取容器的元素 arrlist map 11个隐式对象 pageContext、param、paramValues、header、headerValues pageScope、requestScope、sessionScope、applicationScopecookie、initParam

pageContext:该对象实例对应于当前页面的处理。

pageScope:与页面作用域属性的名称和值相关联的Map类。

requestScope:与请求作用域属性的名称和值相关联的Map类。

sessionScope:与会话作用域属性的名称和值相关联的Map类。

applicationScope:与应用程序作用域属性的名称和值相关联的Map类。

param:按名称存储请求参数的主要指的Map类。

paramValues:将请求参数的所有值作为String数组存储的Map类。

header:按名称存储请求头的主要指的Map类。

headerValue:将请求头的所有值作为String数组存储的Map类。

cookie:按名称存储请求附带的Cookie的Map类。

initParam:按名称存储Web应用程序上下文初始化参数的Map类

el自定义函数 1) 写一个java类,定义一个静态方法 2) 在 WEB-INF目录下写 tld文件 3) 在jsp页面引入tld标签库 直接使用 八、 jstl标签 导入两个jar包 Jstl.jar Standard.jar 在jsp页面要声明引入标签库 <%@ taglibprefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

1、forEach 迭代标签

用于循环遍历

<c:forEach var="good" items="${goodlist}"> </c:forEach> 2、if 条件判断

<c:if>标签 用于判断

3、<c:choose>、<c:when>和<c:otherwise>标签

if标签没有else的功能。如果需要类似与Java中if...else...的流程,需要使用choose标签。choose标签连同when,otherwise标签一块实现if...else...功能。

<c:choose>

<c:whentest="${ status == 'login' }">

when标签的输出

</c:when>

<c:otherwise>

otherwise标签的输出

</c:otherwise>

</c:choose>

当<c:when>标签中获得的参数值时login时,显示了<c:when>标签中的内容。如果获得的参数值不满足<c:when>标签中的条件,则进入<c:otherwise>标签。这里的<c:when>和<c:otherwise>相当于Java中的if...else...语句。 后面不有很多标签,又后总结

相关资源:微信小程序源码-合集3.rar
转载请注明原文地址: https://www.6miu.com/read-4550001.html

最新回复(0)