本文共 4211 字,大约阅读时间需要 14 分钟。
web资源:
分类:静态web资源动态web资源技术:html css js ....servlet jsp软件架构:B/S C/S相同:都是基于请求和响应浏览器发送给服务器的内容叫请求---- request服务器返回给浏览器的内容叫响应---- response请求和响应是成对出现的,一次请求必须对应一次响应,先有请求后有响应.不同:web服务器: 将我们的web项目发布出去,这样一来别人就可以通过浏览器访问到我们服务器上的web资源了.tomcat:下载 和 安装目录:binconfwebappswork: 存放jsp页面转成的java类和编译后的class文件log:temp:lib:启动和关闭:外部启动: bin/startup.bat (批处理文件)外部关闭: bin/shutdown.bat访问:格式: 默认端口: 8080常见问题:一闪而过: 配置java_home端口冲突:修改tomcat端口号端口取值: 0-65535 (0-1024不建议)修改server.xml配置文件70行http协议默认访问端口: 80项目名称:|- html
本质上就是运行在服务器上的java类,通过浏览器可以直接访问
一个类若向通过浏览器被访问到,那么该类必须直接或间接实现servlet接口
接口: 指定规范入门:
协议:
规定内容的传输的格式
http协议:
用来制定互联网上数据的传输的格式
组成:
浏览器发送给服务器的内容 请求 (规定请求数据的格式)服务器返回给浏览器的内容 响应 (规定响应数据的格式)
抓包:
通过浏览器的抓包就可以查看当前请求所包含的请求信息和响应信息.
请求的格式:
请求行 请求头 请求体
请求行:
格式: 请求方式 请求资源 协议/版本 eg: GET /day03/index.html HTTP/1.1 请求方式: get: 请求参数会在地址栏上显示,提交数据量受限,不安全 post: 请求参数不会在地址栏上显示,提交数据量不受限制,相对安全 在地址栏中直接输入请求资源 -- get请求 超链接发送的请求是 -- get请求 location.href = 路径 -- get请求 form表单默认请求方式 -- get请求 截至目前为止,我们所接触到的post请求只有一个 form 表单上method=post;
<a href="跳转路径?username=tom&pwd=123"></a>
请求头: 约束请求参数的类型和格式
格式: key/values的格式 (values可以为多个值的)
名称 说明
Accept 支持数据类型 Accept-Charset 字符集 Accept-Encoding 支持压缩 Accept-Language 语言环境 Host 访问主机 If-Modified-Since 缓存文件的最后修改时间 Referer ★ 来自哪个页面、防盗链 User-Agent ★ 用户代理 Cookie ★ Connection close/Keep-Alive --链接状态重要的头:
Referer User-Agent Cookie请求体:
存放post请求的参数,get请求方式没有请求体.只有表单提交的时候明确了method="post"这时候是post请求,其他的都是get请求
响应的格式:(明天)
响应行 响应头 响应体
Request
操作request对象获取请求携带的数据:
请求来的时候,tomcat服务器会帮我们解析请求,并将请求航头条的信息封装到ServletRequest对象,在HttpServlet中已经将ServletRequest转成了HttpServletRequest ServletRequest ---> HttpServletRequest HttpServletRequest: 查询javaEE API
请求方式 请求路径 协议/版本
重要方法
String getMethod(): 获取请求方式 ★String getContextPath(): 获取项目路径 /web_day03_request_01 String getRemoteAddr(): 获取请求者的ip int getLocalPort(): 获取端口
了解的方法
/day03/row?username=tom&pwd=123 String getRequestURI(): 获取请求资源(不带get请求的参数) String getQueryString(): 获取get请求参数以一个字符串返回get请求的参数 String getProtocol(): 获取协议和版本
重要方法:★
String getHeader(String name): 以字符串形式返回一个请求头的值
了解的方法:
Enumration getHeaderNames(): 获取所有请求头的名称
常用的请求头:
user-agent:用户代理 referer:页面的来源 防盗链
post请求携带的参数信息,get请求没有请求体
tomcat7之前不论是get或post都会有乱码问题
tomcat8以后get请求不再有乱码问题
重要方法:
String getParameter(String name): 获取指定请求参数的值,如果不存在返回null String[] getParameterValues(String name) 获取指定请求参数的多个值数组,如果不存在返回null ★ Map getParameterMap(): Map获取所有的请求参数名称和值
请求的中文乱码
request.setCharacterEncoding("utf-8"); 处理post请求乱码问题 ==Request作用域:==
创建: 请求来的时候,tomcat为当前请求创建request对象 销毁: 响应信息生成的时候 作用范围: 当前请求中
一次请求的延续,将请求交给其他servlet来处理 请求链上的servlet共享Request对象
RequestDispatcher 请求转发器
获取RequestDispatcher: request.getRequestDispatcher("/内部路径"); 方法: forward(request,response);请求转发时浏览器地址栏显示的是第一个servlet的地址请求转发发送的是1次请求转发可以共享request作用域
setAttribute(string name,object o); 设置相同属性名称的参数,就是修改 getAttribute(name); removeAttribute(name);
案例1-防盗链的使用:
需求分析:用户在下载时,如果是从download.html页面发送的下载请求,就允许用户下载如果下载请求不是来自于download.html页面,那么就不允许下载技术分析:防盗链: referer案例2-用户登录需求分析:当用户在登录页面上,输入完用户名和密码后,点击"登陆"按钮时,向服务器发送一个登录的请求,服务器接收请求,并获取用户名和密码,处理登录的逻辑: 处理结果: 登录成功: 用户名和密码都对 登录失败: 用户名或密码错误 代码异常: 当前功能正在维护....
技术分析:
html:表单servlet:JDBCTemplate:
步骤分析:
环境搭建:1.创建数据库表2.创建web项目和包结构3.导入jar包4.导入工具类5.导入配置文件(修改)6.导入前端页面a.编写前端页面 form: username: password: url: loginb.编写后台 web: servlet所在的那一层 1.编写loginServlet 2.在servlet中获取用户名和密码 3.调用service处理业务逻辑 User user = service.login(username,password); 4.判断执行结果,生成响应信息 service: 处理业务逻辑 login(username,password) { // 调用dao return dao.login(username,password); } dao: 持久层 login(username,password){ // 创建JdbcTemplate对象 // 编写sql
转载于:https://blog.51cto.com/13859849/2398361