前言
什么是javaEE ? javaEE就是基本的企业开发语言
什么是servlet(翻译是小服务程序 或者 是服务连接器) 就是本地服务器和http协议的中间件
Servlet 路由
Servlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。使用Servlet可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。本章内容详细讲解了web开发的相关内容以及servlet相关内容的配置使用,是JAVAEE开发的重中之重。
准备条件 1、下载tomcat 和java数据库连接库
那这个其实就是 servlet 开启服务器所需的
直接运行
点击 hello Servlet
出现新的路由方式
@WebServlet(name = "helloServlet", value = "/hello-servlet")
但是 数据的回显的完成就是下边的 doget
public class HelloServlet extends HttpServlet {private String message; //定义一个变量public void init() {message = "Hello World!"; // 使用init进行初始化 值}public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { // doget的基本用法就是当接收到 Req(get请求的时候) 就会调用下边的东西response.setContentType("text/html"); //定义 数据返回的 类型// HelloPrintWriter out = response.getWriter(); // 把resp 写入到浏览器 没有这一句就无法进行 数据的回显out.println("<html><body>"); // 输出 使用html 输出数据out.println("<h1>" + message + "</h1>");out.println("</body></html>");}public void destroy() { //数据的销毁}
我们可以改一下值把 hello word 改为 我学开发
resp.setCharacterEncoding("UTF-8");
路由的修改还一个就是 在web入口 的设置
<servlet><!-- 要加载的名字(自定义)--><servlet-name>HelloServlet</servlet-name><!-- 引用的类的名字的的路径--><servlet-class>com.example.kaifa1.HelloServlet</servlet-class></servlet><servlet-mapping><!-- 给与url地址--><servlet-name>HelloServlet</servlet-name><!-- 访问的路由--><url-pattern>/HelloServlet</url-pattern></servlet-mapping>
路由方式总结1、 直接在类文件前加上 @WebServlet
生命周期
servlet的生命周期就是上边的 那个图
生命周期的的顺序 就是 先初始化 __init__ 再 进行开启小服务 servlet 再一个就是 http服务
最后是 destory 这个只有在 我们的服务器结束的时候才会执行
package com.example.kaifa1;import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.*;
import javax.servlet.annotation.*;import static java.lang.System.out;//@WebServlet(name = "helloServlet", value = "/hello-servlet")
public class HelloServlet extends HttpServlet { //extends 是指类的继承 但是继承是有限的 不能直接继承他的类内的其他方法 需要进行声明private String message;public void init() {message = "Hello我学开发!";System.out.println("--------------init"); //输出数据 查看生命周期}//注意这个只是 Severlet 并不是http
// public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
// out.println("-----------------------service"); }public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("----------------------service");}public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {String x = req.getParameter("x");System.out.println("-------------doGet");resp.setContentType("text/html");resp.setCharacterEncoding("UTF-8");// HelloPrintWriter out = resp.getWriter();out.println("name"+x);
// out.println("<html><body>");
// out.println("<h1>" + message + "</h1>");
// out.println("</body></html>");out.flush(); // 刷新out.close();}public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {out.println("-----------------------service1111"); }public void destroy() {System.out.println("-------------destroy");}
}
运行一下 这个只需要管 System 的输出结果就行 数据的请求和回显 后边会有
步骤 1、先访问当前路径 触发类方法
2、 触发了 Sevlet 服务
没有 触发 http 这个是因为需传参数 get 传参之后 就会 调用 http 和 get方法
关闭服务就会输出
接收处理回显
4、处理接受和回显
● HttpServletRequest是ServletRequest的子接口
getParameter(name) — String 通过name获得值
getParameterValues — String[ ] 通过name获得多值
● HttpServletResponse是ServletResponse的子接口
setCharacterEncoding() 设置编码格式
setContentType() 设置解析语言
getWriter() 获得一个PrintWriter字符输出流输出数据
PrintWriter 接受符合类型数据
JDBC数据库
从数据库取出数据 到 后端
JavaEE-JDBC基础 - 简书
使用步骤 1、 先下载https://mvnrepository.com/
库把库进行封装
建一个 lib文件夹 右键 jar添加为库
JDBC接口类DriverManager 注册驱动,获取数据库连接ConnectionConnection 数据库连接,获取传输器StatementStatement 传输器执行sql语句ResultSet 查询结果集合
简单说就是 先 注册驱动 建立链接 使用外置的statement 进行数据库的语句的执行 最后使用 resultSet 接受数据
先写入这个 哪里红了就导入包就行了 一键导入包 alt + enter
public class MySelect {public static void main(String[] args) throws ClassNotFoundException, SQLException {}}
1、注册驱动
//注册驱动Class.forName("com.mysql.jdbc.Driver");
2、建立连接
// 建立连接String sql="jdbc:mysql://localhost:3306/demo01"; // 3306 后边是数据库的名字 定义连接的 地址 Connection lianejie= DriverManager.getConnection(sql,"root","123456"); // 使用驱动进行连接(链接地址 账号 密码)System.out.println(lianejie);
3、
// 执行语句String sql1="select * from news";
4\
// java是不能直接进行语句的执行 需要使用statementStatement zhixing=lianejie.createStatement(); // 使用创建 statement sql会话ResultSet jieguo=zhixing.executeQuery(sql1); // 定义结果 结果是执行 sql1的语句System.out.println(jieguo); // 输出结果 看一下
输出结果是这样就表示是连接执行都是正确的
next()方法的作用是将光标从当前位置向前移动一行。在ResultSet对象最初创建时,光标位于第一行之前。因此,第一次调用next()方法会使光标移动到第一行,如果第一行存在,则返回true;如果ResultSet为空(即没有数据行),则返回false。随后的每次调用next()方法都会将光标移动到下一行,直到最后一行之后,此时再调用next()方法将返回false。
//使用循环 遍历 结果while(jieguo.next()){String id=jieguo.getString("id");String title=jieguo.getString("page_title");String author=jieguo.getString("heading");String content=jieguo.getString("content");}
获取数据的数据