文章目录
- 一,CDN方式使用element-ui
- --1,测试
- 二,Servlet
- --1,概述
- --2,入门案例
- 创建SpringBoot工程
- 配置maven
- 创建Servlet类
- 修改启动类
- 测试
- 三,Servlet的练习
- --1,创建HTML网页(在Hbuilder里)
- --2,创建Servlet程序(在IDEA里)
- --3,测试
- --4,调用流程
- 四,配件文件的形式配置Servlet的程序
- --1,创建Servlet的程序
- --2,修改web.xml配置文件
- 产生web.xml
- 修改
- --3,测试
- 五,Servlet细则
- --1,继承结构
- --2,生命周期
- --3,测试doPost/doGet
- 创建前端HTML网页
- 创建Servlet程序
- 六,解析请求参数
- --1,模拟Servlet解析请求参数
- --2,Request对象
一,CDN方式使用element-ui
–1,测试
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><!-- 1.在一个简单的网页中,使用 element-ui的效果先导入vue.js+再导入element-ui的相关资源,下面导入的方式都是在线访问一个网址(cdn)--><script src="https://unpkg.com/vue/dist/vue.js"></script><script src="https://unpkg.com/element-ui/lib/index.js"></script><link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"></head><body><div id="app"><!-- 2.使用element-ui的按钮元素 --><el-button type="success" >Button</el-button></div></body><script>new Vue({el: '#app'})</script>
</html>
二,Servlet
–1,概述
通过java代码实现的一段服务器的功能.
1, 接受浏览器的请求
2, 给浏览器做出响应
使用步骤:
1, 导入servlet-api.jar包(被springboot工程简化了)
2, 创建Servlet程序
3, 打开浏览器,按照正确的方式来访问Servlet程序
–2,入门案例
创建SpringBoot工程
File - New - porject - Spring initializer 并修改网址 - next - 修改域名和项目名称和jdk8 - next - Finish
配置maven
创建Servlet类
必须先放在启动类同包里,选中src/main/java/启动类所在的包 – new – servlet/create new servlet - 设置Servlet的名字 -ok
package cn.tedu.cgb2110boot02;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/Servlet1")
public class Servlet1 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("doPost...");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("doGet...");}
}
修改启动类
package cn.tedu.cgb2110boot02;import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;//2,Servlet程序想要别浏览器访问,@WebServlet规定了浏览器的访问方式(配置文件)
@WebServlet("/hello/Servlet1")
//1,Servlet程序的实现标准,就有三种方式:implements Servlet,extends GenericServlet
public class Servlet1 extends HttpServlet {//3,doPost()用来处理那些 post的请求(method=post)@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("doPost...");}//4,doGet()用来处理那些 get的请求@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("doGet...");}
}
测试
三,Servlet的练习
–1,创建HTML网页(在Hbuilder里)
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>测试 前后端的交互</title></head><body><a href="http://localhost:8080/user/addServlet">点我,访问Servlet程序</a></body>
</html>
–2,创建Servlet程序(在IDEA里)
package cn.tedu.cgb2110boot02;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/user/addServlet")
public class Servlet2 extends HttpServlet {//大多数的请求会以get方式来访问,Servlet会主动调用doGet()protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("doGet已经被触发...");}
}
–3,测试
http://localhost:8080/user/addServlet
–4,调用流程
四,配件文件的形式配置Servlet的程序
–1,创建Servlet的程序
package cn.tedu.cgb2110boot02;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class Servlet3 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("doPost");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("doGet");}
}
–2,修改web.xml配置文件
产生web.xml
修改
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!-- 配置 Servlet3类的访问规则 --><servlet><!-- 给servlet类设置别名 --><servlet-name>Servlet3</servlet-name><!-- 指定了 类的全路径(包名.类名) --><servlet-class>cn.tedu.cgb2110boot02.Servlet3</servlet-class></servlet><servlet-mapping><!-- servlet类的别名,要和上面的servlet-name的值一样 --><servlet-name>Servlet3</servlet-name><!-- 规定了浏览器的访问方式 --><url-pattern>/hello</url-pattern></servlet-mapping>
</web-app>
–3,测试
五,Servlet细则
–1,继承结构
–2,生命周期
http://localhost:8080/Servlet4
package cn.tedu.cgb2110boot02;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//@WebServlet //如果不写值,访问的规则就是类名 /Servlet4
@WebServlet("/a")//修改了浏览器的访问规则 /a
public class Servlet4 extends HttpServlet {//Servlet的生命周期:三个阶段init() destroy() service()//会执行多次,访问几次Servlet这个service()就会执行几次.//用来接受请求,给浏览器做出响应protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取请求方式String method = req.getMethod();System.out.println("service()开始服务..."+method);}//只执行1次,而且是在Tomcat服务器正常关闭时执行的(Tomcat现在已经被springboot整合了,啥时候真正关闭我们控制不了)public void destroy() {System.out.println("destroy()开始销毁...");}//只执行1次,而且是在这个Servlet程序第一次被访问时执行的public void init() throws ServletException {System.out.println("init()开始初始化...");}
}
–3,测试doPost/doGet
创建前端HTML网页
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>测试 前后端交互</title></head><body><!-- 测试 get/post 提交数据时, 不同的处理方式 --><!-- 会以get方式提交这次请求 --><a href="http://localhost:8080/user/userServlet">点我,访问Servlet程序</a><!-- 会以post方式提交这次请求 --><form method="post" action="http://localhost:8080/user/userServlet">用户名:<input type="text" placeholder="用户名.." name="user"/><br />密码: <input type="password" placeholder="密码.." name="pwd"/><br /><button type="submit">提交</button></form></body>
</html>
创建Servlet程序
package cn.tedu.cgb2110boot02;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/user/userServlet")
public class UserServlet extends HttpServlet {//必须是表单 + 必须是method=post的表单,才会触发doPost()protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("表单数据已经正确提交~~~");}//除了post提交的方式,大部分情况会触发doGet()protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("超链接访问成功~~~");}
}
六,解析请求参数
–1,模拟Servlet解析请求参数
package cn.tedu.cgb2110boot02;
//java程序里怎么解析用户提交的请求参数 jack 123 ????
public class Test1 {public static void main(String[] args) {String s = "http://localhost:8080/user/userServlet?user=jack&pwd=123";
// 1,按照?切割字符串,得到两个字符串,并存入数组中//[http://localhost:8080/user/userServlet,user=jack&pwd=123]String[] strs = s.split("\\?");
// 2,重点解析数组中 第二部分的字符串String data = strs[1];//user=jack&pwd=123
// 3,按照&切割字符串,又得到数组String[] datas = data.split("&");//[user=jack,pwd=123]
// 4,遍历数组,获取每个数据 user=jack pwd=123for (String str : datas) {String[] s1 = str.split("=");//[user,jack]
// 5,按照=切割,又又得到数组[user,jack],只要第二个元素jackString input = s1[1];System.out.println(input);//jack 123}}
}