【java实训课】web网页相关知识点总结

文章目录

    • Mysql 基础操作
    • 操作指令
    • 数据库实验
    • DAO 模式
        • DAO 封装的增删改查代码
        • DAO封装的增改查测试代码
      • jsp
      • java Web
        • 创建一个新的工程文件
    • IDEA
      • 配置 Web 项目环境
        • 环境 : IDEA+tomcat
        • 在当前的文件过程下配置web
        • 添加tomcat 本地连接
        • 配置web.xml 文件
        • 总结:

Mysql 基础操作


使用方法:

方式一:

SQL:结构化查询语言

DDL(定义),DML(操作),DQL(查询),DCL(控制)

mysql:

操作指令

连接数据库

// 进入mysql 
mysql -u root -p// 显示数据库
show databases;
show tables;//进入某个数据表
use dataname;// 当前数据库显示其他数据表
show tables from mysql; 从mysql 显示mysql// 显示当前是在哪个数据量
show database();
//插入数据INSRERT INTO (字段名) values (插入数据值);
//学习DAO模式
增删改查web 的学习
怎么封装jdbc;
// 更新表内容
update news_users set uname='jucw' where uname='zcw';
// 删除
delete from news_users where uname = 'jucw';
delete from 表名 where 字段匹配;
  • 使用where需要查找多个的时候,使用IN来匹配多个

数据库实验

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class jdbc {public static void main(String[] args) {Connection con = null;ResultSet rs = null;try {// 1. 引入驱动String sql = "select * from news_users where usid = 10";Class.forName("com.mysql.cj.jdbc.Driver");// 访问驱动管理程序con = DriverManager.getConnection("jdbc:mysql://localhost/db_news?useSSL=FALSE&serverTimezone=Asia/Shanghai","root","123456");Statement stmt = con.createStatement();rs = stmt.executeQuery(sql); // 这里返回了第一条记录数据while(rs.next()) //这里rs 已经是第二条数据,{// 使用游标获取当前行,每次往下移动//获取当前行的每一列数据int id = rs.getInt("usid");String uname = rs.getString("uname");String pwd = rs.getString("upwd");System.out.println(id+uname+pwd);}System.out.println("\t连接成功");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}try{
//            插入数据System.out.println("\t插入数据 ");// 1. 创建执行语句String sql1 = "insert into news_users(uname, upwd) values('zcw', '123456')";// 2. 声明用于执行数据库语句Statement stmt = con.createStatement();// statement 来执行数据库// 3. 将数据执行插入到数据库stmt.executeUpdate(sql1);System.out.println("\t数据更新成功+'zcw', '123456'!!!");}catch (Exception e){e.printStackTrace();}try{
//            插入数据System.out.println("\t统计数据: ");// 1. 创建执行语句String sql1 = "select COUNT(*) from news_users";// 2. 声明用于执行数据库语句Statement stmt = con.createStatement();// statement 来执行数据库// 3. 将数据执行插入到数据库rs = stmt.executeQuery(sql1);rs.next();int c = rs.getInt(1);System.out.println("\tcount:"+c);}catch (Exception e){e.printStackTrace();}try{
//            插入数据System.out.println("\t统计数据: ");// 1. 创建执行语句String sql1 = "DELETE FROM news_users where usid = 16";// 2. 声明用于执行数据库语句Statement stmt = con.createStatement();// statement 来执行数据库// 3. 将数据执行插入到数据库int row = stmt.executeUpdate(sql1);System.out.println("\t删除了:"+row);System.out.println();}catch (Exception e){e.printStackTrace();}}
}

DAO 模式

  • Data Access Object 数据访问对象,数据访问层,持久层

  • orm 框架:object relational mapping 对象关系映射

作用: 程序怎么操作数据库表的记录, 程序中设计实体模型,看出是数据库表在程序中的一种体现

orm 映射内容:

  1. 数据库表 ---- java类(entry)实体类
  2. 表字段 ---- java 类的属性
  3. 数据类型 ----java数据类型对应
  4. 表的一条记录 ----- java类的某个实体
  • 通用DAO

    打开数据库的连接

    关闭数据库的连接

  • DAO的实现

表 ----- 用户的实体类

  • preparedStatement :预处理的接口

    1. 通过占位符设参数
  • 定义函数

    • 查找用户

      String sql = "select * from 表名 where usid=?"; //传进来的参数是id#使用prepareStatement 可以预编译sql
      #设置占位符的参数
      pre.setInt(1,id) # 这里的占位符跟format 是一样的,指定的位置是第几个参数
      # 开始执行参数
      rs = pre.executeQuery() # 这里不同于Statement 不用传进来sql使用try catch finally 最终在finally关闭连接
    • 添加用户

      # 需要传进来两个参数 用户名和密码
      String sql = "Insert into 表名(uname, upwd) value (?,?)" # 在这里占位# 预编译sql
      # 设置占位符的值
      pre.setString(1, user.getUsername()); #传进来数据
      pre.setString(2, user.getUserpwd()); # 传进来密码
    • 修改用户数据

      # 将所有数据重新写入一边
      #一行设置
      
    • 删除数据

      # 根据指定的id把用户数据删除
      pre.setInt(1,id); # 将sql 语句的值补充完整
      

  • 测试的时候:

    • 添加用户

      1. 创建新的用户类,设置新的用户信息,将新的用户信息传到添加函数里面去;
    • 删除用户

      1. 根据指定的id找到指定的用户

      2. 将指定的用户添加到删除函数里面,返回删除的行数

    • 修改用户数据

      1. 根据id查找到指定的用户
      2. 将找到的用户添加到修改函数里,返回删除的行数
    • 查找用户

      1. 根据指定的id查找的用户
      2. 提取用户的字段显示

DAO 封装的增删改查代码

import javax.jws.soap.SOAPBinding;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;public class UserDao extends BaseDao { // 继承ResultSet rs = null;public List<entry.Users> findAllUsers() throws SQLException {// 查询所有用户String sql = "select * from news_users";Connection con = this.getConnection();Statement stamt = null;ResultSet rs = null;List<entry.Users> list = new ArrayList<>();stamt = con.createStatement();rs = stamt.executeQuery(sql);while (rs.next()){entry.Users user = new entry.Users();user.setId(rs.getInt("usid"));user.setUsername(rs.getString("uname"));user.setPassword(rs.getString("upwd"));list.add(user);}return list;}public entry.Users findUsersById(int id) {String sql = "SELECT * FROM news_users WHERE usid=?"; // 传进来一个id 返回一个用户Connection con = this.getConnection();PreparedStatement pstmt = null;ResultSet rs = null;entry.Users user = null;try {pstmt = con.prepareStatement(sql);  //预编译sql//设置占位符参数pstmt.setInt(1, id);rs = pstmt.executeQuery();if(rs.next()) {  //移动数据库游标 ,往下移一行//获取当前行的每一列的数据user = new entry.Users();user.setId(rs.getInt("usid"));user.setUsername(rs.getString("uname"));user.setPassword(rs.getString("upwd"));}} catch (SQLException e) {e.printStackTrace();} finally {this.closeDB(con, pstmt, rs);}return user;}/*** 添加用户* @param user 用户对象的载体* @return     返回影响行数*/public int addUser(entry.Users user) { // 返回值是intString sql = "INSERT INTO news_users(uname,upwd) VALUES(?,?)";Connection con = this.getConnection();PreparedStatement pstmt = null;int row = 0;try {pstmt = con.prepareStatement(sql);  //预编译sql 使用占位符//设置占位符参数pstmt.setString(1, user.getUsername()); // 用户名在第一位pstmt.setString(2, user.getPassword()); // 密码在第二位row = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {this.closeDB(con, pstmt, null);}return row;}/*** 修改用户* @param user 用户对象的载体* @return     返回影响行数*/public int updateUser(entry.Users user) {String sql = "UPDATE news_users SET uname=?,upwd=? WHERE usid=?";Connection con = this.getConnection();PreparedStatement pstmt = null;int row = 0;try {pstmt = con.prepareStatement(sql);  //预编译sql // 给预编译占位符设置初始值//设置占位符参数pstmt.setString(1, user.getUsername());pstmt.setString(2, user.getPassword());pstmt.setInt(3, user.getId());row = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {this.closeDB(con, pstmt, null);}return row;}public int deleteUser(int id) {String sql = "DELETE FROM news_users WHERE usid=?";Connection con = this.getConnection();PreparedStatement pstmt = null;int row = 0;try {pstmt = con.prepareStatement(sql);  //预编译sql//设置占位符参数pstmt.setInt(1, id);row = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {this.closeDB(con, pstmt, null);}return row;}}

DAO封装的增改查测试代码

import java.sql.SQLException;
import java.util.List;public class testDao {private static int id = 1;private int row = 1;public static void main(String[] args) throws SQLException {UserDao userDao = new UserDao();List<entry.Users> list = userDao.findAllUsers();for (entry.Users users : list){System.out.println(users.getId()+','+users.getUsername()+","+users.getPassword());}// 添加数据
//        entry.Users user = new entry.Users();
//        user.setUsername("jucw");
//        user.setPassword("1323");
//        int row = userDao.addUser(user);
//        System.out.println("\t 第"+row+"行添加数据!!!");// 删除
//        entry.Users user = userDao.findUsersById(id);
//        int row = userDao.updateUser(user);
//        System.out.println("\t 成功删除第"+row+"行数据!!!");// 修改密码数据
//        int id = 3;
//        entry.Users user = userDao.findUsersById(id); // 查找到用户的Id
//        user.setPassword("5201314");
//        int row = userDao.updateUser(user);
//        System.out.println("\t 更新第"+row+"行数据成功");// 查找id
//        int id = 3;
//        entry.Users user = userDao.findUsersById(id); // 查找id返回user
//        System.out.println(user.getUsername()+','+user.getPassword());}
}

jsp

  • jsp 和 servelet 本子是相同的

  • jsp = java server pages

  • 作用:主要是呈现动态内容,也可以接受请求做出响应

  • jsp 页面元素

    • html 元素
    • java 脚本: 小脚本 表达式
    • jsp 页面上的标签技术:jstl ,el表达式
  • jsp运行流程:

    ​ jsp 转义成,java类(servelet)

    ​ java 通过jvm编译成.class 文件

    ​ jvm 执行.class 文件 生成html 文件返回给客户端

java Web

  • 目标:主要开发动态网页,交互性,和数据库进行交互

servele / jsp 是一对

  • javaweb 运行环境

    • jre javaweb
      + [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-egYa3MNJ-1640679132245)(D:\resourse\gui\Mysql\mysql.assets\image-20211228151634481.png)]
  • servelet = server + let

    服务器的小程序,是一个Java类运行在服务器上;

    是应用程序和数据库之间的中间件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u9Qz1KgN-1640679132246)(D:\resourse\gui\Mysql\mysql.assets\image-20211228103509516.png)]

  • Web 工程目录结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jl6UBNJY-1640679132246)(D:\resourse\gui\Mysql\mysql.assets\image-20211228121833286.png)]

  • MCV 模式

    1. Model 模型
    2. View 视图
    3. Controller 控制器
  • 访问路径:

    https://localhost:8080/目录的路径/文件路径

    接受请求之后做出响应;

改为server 接受请求的方法

请求和响应

// 设置响应的编码
response.setContetType("text/html,charset=utf8");//网页的输出流
PrintWriter out = response.getWriter();
out.print("这是第一个程序");
out.flush();
out.close();

创建一个新的工程文件

  • 导包
  • 创建新闻流

IDEA

  • 数据库连接
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9FqxL5W9-1640679132246)(D:\resourse\gui\Mysql\mysql.assets\image-20211228102155741.png)]

tomat IDEA

配置 Web 项目环境

环境 : IDEA+tomcat

包链接:tomacat 8.0.50 and jstl-1.2.jaar 存在阿里云盘大三作业

在当前的文件过程下配置web

右键项目选择添加框架;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dVHgV65x-1640679132247)(D:\resourse\gui\Mysql\mysql.assets\image-20211228153155618.png)]

添加网页项目文件

添加tomcat 本地连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c9LWqHoz-1640679132248)(D:\resourse\gui\Mysql\mysql.assets\image-20211228153349097.png)]

在项目结构里面设置依赖环境

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kJk1nn5j-1640679132248)(D:\resourse\gui\Mysql\mysql.assets\image-20211228153515516.png)]

设置依赖连接

配置web.xml 文件

<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"><display-name>FirstServletdisplay-name><welcome-file-list><welcome-file>index.jspwelcome-file> welcome-file-list>
<servlet><servlet-name>firstservlet-name> <servlet-class>FirstServletservlet-class> servlet><servlet-mapping><servlet-name>firstservlet-name><url-pattern>/hiurl-pattern>   servlet-mapping>
web-app>

总结:

配置web项目的时候将相关依赖进行设置有服务器Tomcat和设置jsp 时候使用的jstl 两个文件包

在配置tomcat 的时候需要设置相关访问设置

web 项目配置过程中将

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ec0hE21B-1640679132249)(D:\resourse\gui\Mysql\mysql.assets\image-20211228160610447.png)]

web下面可以创建两个文件夹:

classes 和 lib

  • classes : 在工程结构中设置Output 路径
  • lib : 存放需要的包文件
  • 本路径下的index.jsp 是默认的文件
  • jsp 文件在这个目录下进行创建,之后需要的时候进行导入;


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部