医院网站建设运行管理办法,怎么搭建自己的网站服务器,婺源网站建设,荆州网站建设流程今日内容 0 复习昨日 1 接收请求 2 处理响应 0 复习昨日 HTTP请求中 请求行 请求方法,请求路径 请求头 页面信息 请求正文 请求的数据 HTTP响应中 响应行 状态码 信息 响应头 页面信息 响应正文 要给浏览器的内容 1 接收请求 浏览器发出请求,经过web.xml映射匹配,找到Servlet…今日内容 0 复习昨日 1 接收请求 2 处理响应 0 复习昨日 HTTP请求中 请求行 请求方法,请求路径 请求头 页面信息 请求正文 请求的数据 HTTP响应中 响应行 状态码 信息 响应头 页面信息 响应正文 要给浏览器的内容 1 接收请求 浏览器发出请求,经过web.xml映射匹配,找到Servlet对应的方法(doGet/doPost),接收请求数据,可以接收请求中的请求行,请求头,请求正文 浏览器发出请求 a/form/ajax 经过web.xml映射匹配 web.xml(8行代码) doGet/doPost 前端是get请求,就重写doGet前端是post请求,就重写doPost 如何接收数据 通过HttpServletRequest对象处理 需求: html页面中写一个表单,发送请求,后台服务器接收所有请求数据
1.1 编写页面
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/title
/head
body
!--表单提交数据,一定要有name属性,后台服务器,就是name获得值------------------------点击提交,会以method指定的请求方式,将数据发送到action指定后台服务器action路径,建议是 /项目名/路径--
form action/day47/req methodget用户名 input typetext nameusernamebr密码 input typepassword namepasswordbr性别 input typeradio namesex value1男input typeradio namesex value2女br技能input typecheckbox nameskill valueJavaJavainput typecheckbox nameskill valueJavaScriptJavaScriptinput typecheckbox nameskill valueSSMSSMbr学历select namexuelioption valuegaozhong高中/optionoption valuedazhuan大专/optionoption valuebenke本科/option/selectinput typesubmit value提交
/form/body
/html1.2 编写Servlet
package com.qf.servlet;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;/*** --- 天道酬勤 ---** author QiuShiju* desc*/
public class MyServlet extends HttpServlet {/**** param req 处理请求的对象* param resp 处理响应的对象* throws ServletException* throws IOException*/Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 请求方法String method req.getMethod( );System.out.println(method method);// 获得请求路径String requestURI req.getRequestURI( );// 资源标识符StringBuffer requestURL req.getRequestURL( ); // 资源定位符System.out.println(requestURI requestURI);System.out.println(requestURL requestURL);System.out.println(-------------------------------------- );// 接收请求头【了解】String host req.getHeader(Host);System.out.println(host host);EnumerationString keys req.getHeaderNames( );while (keys.hasMoreElements()) {String key keys.nextElement( );String value req.getHeader(key);System.out.println(key : value);}System.out.println(-------------------------------------- );// 接收请求数据【重点】// 接收请求数据,无论单选,还是下拉框等都是getParameter(name);// name是前端标签name属性的值String username req.getParameter(username);String password req.getParameter(password);String sex req.getParameter(sex);String xueli req.getParameter(xueli);System.out.println(username username);System.out.println(password password);System.out.println(sex sex);System.out.println(xueli xueli);// 复选框// 如果一个没选,数组没有创建,是null,不是长度为0String[] skills req.getParameterValues(skill);// 空指针异常,就是使用空对象调用属性和方法for (int i 0; skills ! null i skills.length; i) {System.out.println(skill[(i1)] skills[i]);}}
}
1.3 配置web.xml
?xml version1.0 encodingUTF-8?
web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaee
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd
version3.1welcome-file-listwelcome-fileindex.html/welcome-file/welcome-file-listservletservlet-nameservlet/servlet-nameservlet-classcom.qf.servlet.MyServlet/servlet-class/servletservlet-mappingservlet-nameservlet/servlet-name!--此处不需要写项目名,只需要写请求路径--url-pattern/req/url-pattern/servlet-mapping
/web-app1.4 部署项目
1.5 启动测试
2 做出响应 做出响应是通过HttpServletResponse对象 响应行 状态码 响应头 响应信息,其中有一个cookie后续会用到,以及编码格式 响应正文 向浏览器展现的内容 // 响应状态码// 200 是成功, 302 重定向 404 资源未找到 500 服务器错误// 一般不用设置,为自动响应// resp.setStatus(200);// 设置响应头// resp.setHeader(key,value);// 指定浏览器如何解析响应的内容,解决响应乱码resp.setContentType(text/html;charsetutf-8);// 向浏览器响应内容(响应正文)PrintWriter out resp.getWriter( );out.write(html);out.write( head);out.write( title这是响应/title);out.write( /head);out.write( body);out.write( div stylebackground-color:red;width:500px;height:500px;font-size:50px);out.write( 这是响应,欢迎username);out.write( /div);out.write( /body);out.write(/html);3 乱码解决 请求乱码 req.setCharacterEncoding(utf-8);响应乱码 resp.setContentType(text/html;charsetutf-8);作业
画javaweb开发流程图
画servlet执行图
---------------------
前端html页面用户名密码,
后端servlet接收数据
数据库根据数据查询用户
查询到,页面欢迎语
查询不到,页面展现登录失败信息-------------------------
复习JDBC
复习HTML(表单/表格) JS(语法/函数) JQuery(DOM) Ajax(语法模板)