JavaWeb
2023-04-04 16:28:44 0 举报
AI智能生成
学习笔记
作者其他创作
大纲/内容
http://localhost:8080/test/demo?username=zhangsan&password=123456
http // 表示协议localhost // 表示ip地址8080 // 表示端口test/demo // 表示资源路径,test表示为项目在Tomcat中定义的虚拟目录(一般用项目名称作为虚拟目录),demo表示对应的servlet路径username=zhangsan&password=123456 // 表示参数
URL详解
String getMethod(); // 获取请求方式
String getContextPath(); // 获取虚拟目录(项目目录)
StringBuffer getRequestURL(); // 获取URL
String getRequestURI(); // 获取URI
String getQueryString(); // 获取请求参数(get方法获取参数)
请求行
String getHeader(String name); // 根据请求头名称,获取值
请求头
ServletInputStream getInputStream(); // 获取字节输入流
BufferReader getReader(); // 获取字符输入流(post方式获取参数)
请求体
Request
get方式是从请求头中获取请求参数,post方式是从请求体中获取请求参数,获取请求参数的方式不统一,所有出现了不考虑get或post方式就获取到请求参数的方法
String[] getParameterValues(String name); // 根据名称获取参数值(数组)
String getParameter(String name); // 根据名称获取参数值(单个值)
通用方式获取请求参数
void setStatus(int src); // 设置响应状态码
响应行
response.setHeader(\"content-type\
响应头
response.getWriter().write(\"<h1>aaa</h1>\");
PrintWriter getWriter(); // 获取字符输出流
ServletOutputStream getOutputStream(); 获取字节输出流
响应体
Response
Tomcat7之前中文乱码需要手动进行处理;Tomcat8已经将字符集设置为utf-8,自动解决了中文乱码问题,无需再进行处理
get请求
request.setCharacterEncoding(\"utf-8\");
post请求
中文乱码问题?
重定向是浏览器向服务器发送一个请求,服务器给浏览器响应一个地址,然后浏览器再根据这个地址再次向服务器发送一个请求(浏览器向服务器发送两次请求)
定义
response.sendRedirect(\"/a.jsp\");
使用
浏览器地址栏路径发生变化
可以重定向到任意位置的资源(服务器内部,外部均可)
两次请求,不能在多个资源使用request共享数据
特点
response-重定向
转发是浏览器向服务器发送一个请求,服务器根据地址在服务器内部查找,然后给浏览器一个响应(浏览器向服务器发送一次请求)
request.getRequestDispatcher(\"/a.jsp\
浏览器的地址栏不发生变化
只能转发到当前服务器的内部资源
一次请求,可以在转发的资源间使用request共享域
Object request.getAttribute(String name); // 根据key,获取值
void removeAttribute(String name); // 根据key,删除该键值对
方法
request-转发
配置路径:@WebServlet(\"/user/select\")访问路径:localhost:8080/web-demo/user/select
1.精确匹配
配置路径:@WebServlet(\"/user/*\")访问路径:localhost:8080/web-demo/user/aaa访问路径:localhost:8080/web-demo/user/bbb
2.目录匹配
配置路径:@WebServlet(\"*.do\")访问路径:localhost:8080/web-demo/user/aaa.do访问路径:localhost:8080/web-demo/user/bbb.do
3.扩展名匹配
当我们的项目中的Servlet配置了 \"/\",会覆盖掉tomcat中的DefaultServlet,当其他的url-pattern都匹配不上时都会走这个Servlet
当我们的项目中配置了 \"/*\" ,意味着匹配任意访问路径
/ 和 /* 区别
配置路径:@WebServlet(\"/\")配置路径:@WebServlet(\"/*\")访问路径:localhost:8080/web-demo/user/haha
4.任意匹配(不推荐使用)
配置规则
JSP,Html页面,重定向中的 \"/\" 表示Tomcat的根目录(http://localhost:8080/)
web.xml 文件映射或映射注解,转发中的 \"/\" 表示Tomcat中的项目的根目录(http://localhost:8080/虚拟目录(项目目录)/)
路径\"/\"问题?
servlet默认在第一次访问时创建
<load-on-startup>1<load-on-startup>(0或正整数都可以)
servlet可以指定在服务器启动时创建
1.加载和实例化
2.初始化:执行init方法,只执行一次
3.请求处理:执行service方法,执行多次
4.销毁:执行destroy方法,只执行一次
生命周期
<servlet> <servlet-name>test</servlet-name> <servlet-class>com.ywx.exam.servlet.TestServlet</servlet-class></servlet><servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/demo</url-pattern></servlet-mapping>
1.使用web.xml配置文件
@WebServlet(\"/资源路径\")
2.使用@WebServlet注解
访问servlet的方式
Servlet
JSP(Java Server Pages)是一种动态网页技术标准
<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %><html><head> <title>Title</title></head><body></body></html>
基本页面
<%-- 注释内容 --%>
注释
是什么?
用于服务器端进行页面数据的动态渲染
干什么?
JSP页面和html页面一样可以被客户端浏览器直接请求,请求的地址如下: http://localhost:8080/first.jspJSP的内容看起来像网页,但是它实际上不是一个简单的网页,JSP中是可以直接通过el表达式从request对象中获取动态的数据进行展示
怎么干?
JSP
EL(Expression Language),表达式语言
el表达式就是一个专门提供给JSP页面从request对象中获取数据的一种表达式
${key}
语法
EL表达式
用于在JSP页面数据展示时进行逻辑判断和循环处理,让开发人员
Java Server Pages Standard Tag Library,
JSTL标签库
为什么要用Cookie?
String getName(); // 获取Cookie的键
String getValue(); // 获取Cookie的值
因为Cookie保存在客户端
缺点
Cookie
HttpSession session = request.getSession();
获取session
session.setAttribute(\"currentUser\
向session中设置数据
session.getAttribute(\"currentUser\");
获取session中设置的数据
Session
Cookie和Session的区别
JavaWeb
0 条评论
回复 删除
下一页