java web知识点

news/2025/2/25 10:15:51/文章来源:https://www.cnblogs.com/cloud-2-jane/p/18565570

概念

第一部分

  1. 请求转发在服务器内部完成,地址栏URL不变,适合数据共享;而请求重定向则在客户端完成,导致URL变化,适合需要通知用户访问新页面的场景。
  2. GET一般用于获取数据,适合用于不改变服务器状态的请求,适合传输少量数据。
    POST用于提交数据并可能改变服务器状态,适合传输大量数据和敏感信息。(数据大小无限制,请求方式更安全)
  3. C/S架构的客户端程序直接与数据库服务器端建立连接
    B/S架构是客户机上无需安装专门的客户端程序,程序中的业务逻辑处理都集中到了Web服务器上,浏览器并不是直接与数据库服务器建立连接,而是通过Web服务器与数据库服务器需要建立连接。
  4. Include指令:只有一个file属性,用于指定要包含文件的路径。
    css是一种用于(增强)控制网页样式并允许将样式信息与网页内容分离的标签性语言。
    Session是指用户与服务器之间的对话,通常从用户登录开始,到用户登出或会话超时结束。它用来存储与用户相关的数据,如身份验证信息和用户偏好设置。

第二部分

  1. 请列举5个JSP内置对象。
    1.request:表示客户端请求的信息,包括请求参数、请求头等。
    2.response:用于向客户端发送响应,包括设置响应类型、响应头等。
    3.session:用于管理用户的会话信息,允许在多个请求间存储用户信息。
    4.application:代表整个Web应用程序的上下文,用于在应用范围内存储数据。
    5.out:用于向客户端输出内容,通常是输出HTML或文本信息。
  2. 请简述JavaScript的主要特点。
    解释型语言:JavaScript不需要编译,直接由浏览器解释执行。
    基于对象:支持面向对象编程,使用对象和原型来组织代码。
    动态类型:变量类型可以在运行时动态变更,支持多种数据类型。
    事件驱动:可以通过事件监听器响应用户交互(例如鼠标点击、键盘输入等)。
    跨平台:可以在各种操作系统和浏览器上运行,具备良好的兼容性。
  3. 请简述监听器的概念,并列举出三要素。
    概念:监听器是Java EE Web应用中的一种组件,它用于监听特定事件(如会话创建、销毁或上下文变化),并对这些事件进行处理。
    三要素:1.事件源:触发事件的对象(例如ServletContext、HttpSession等)。
    2.事件类型:监听器感兴趣的事件类型(如会话创建、会话销毁等)。
    3.事件处理:监听器对发生事件时执行的具体操作,通过实现相应的接口来定义处理逻辑。
  4. 请描述5个XMLHttpRequest 对象常用属性及其作用。
    1.readyState:表示请求的当前状态,值从0到4逐步变化,最后的状态4表示请求完成。
    2.status:返回HTTP状态码,用于检查请求是否成功(如200表示成功,404表示未找到)。
    3.responseText:包含服务器返回的文本响应数据,通常是HTML或JSON格式的字符串。
    4.responseXML:当服务器返回XML格式的数据时,返回响应的XML文档。
    5.onreadystatechange:一个事件处理程序,它在 readyState 变化时调用,可以用于检查请求进度并处理响应。
  5. 请简述Servlet的5个主要任务。
    1.接收请求:Servlet接受来自客户端的HTTP请求,并获取请求参数和信息。
    2.处理请求:根据业务逻辑处理请求,例如处理表单数据、访问数据库等。
    3.生成响应:构建HTTP响应,包括设置响应类型、数据内容等。
    4.发送响应:将生成的响应发送回客户端,通常为HTML页面或JSON数据。
    5.管理会话:维护用户会话信息,通过HttpSession对象存储用户数据以在多个请求中共享。

servlet代码

package cn.edu.xaut.servlet;import cn.edu.xaut.bean.UserBean;
import cn.edu.xaut.dao.UserDao;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;
import java.sql.Date;
import java.sql.SQLException;@WebServlet(name = "RegisterServlet", urlPatterns = {"/RegisterServlet"})
public class RegisterServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//处理字符编码response.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");//获取表单参数String username = request.getParameter("username");String email = request.getParameter("email");String pwd = request.getParameter("pwd");//创建JavaBeanUserBean user = new UserBean();user.setName(username);user.setEmail(email);user.setPassword(pwd);user.setRegisterDate(new Date(System.currentTimeMillis()));//使用userDao插入数据UserDao userDao = new UserDao();try {userDao.insertUser(user);} catch (Exception e) {throw new RuntimeException(e);}// 跳转到registerSuccess.jsp进行显示request.setAttribute("userbean", user);request.getRequestDispatcher("registerSuccess.jsp").forward(request,response);}
}

Bean代码

package cn.edu.xaut.bean;import java.sql.Date;public class UserBean {private int id;private String name;private String password;private String email;private Date registerDate;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public Date getRegisterDate() {return registerDate;}public void setRegisterDate(Date registerDate) {this.registerDate = registerDate;}@Overridepublic String toString() {return "UserBean{" +"id=" + id +", name='" + name + '\'' +", password='" + password + '\'' +", email='" + email + '\'' +", registerDate=" + registerDate +'}';}
}

Dao代码

package cn.edu.xaut.dao;import cn.edu.xaut.bean.UserBean;
import cn.edu.xaut.util.JDBCUtil;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;public class UserDao {public boolean insertUser(UserBean user) throws SQLException, ClassNotFoundException {// 1. 获取连接Connection conn = JDBCUtil.getConnection();// 2. 声明sql语句- preparedStatementString sql = "insert into tb_users (name,password,email,registerDate)" +"values (?,?,?,?)";PreparedStatement ps = conn.prepareStatement(sql);// 3. 对预编译的sql语句设置参数ps.setString(1,user.getName());ps.setString(2, user.getPassword());ps.setString(3, user.getEmail());ps.setDate(4, user.getRegisterDate());// 4. 执行sql语句int num = ps.executeUpdate();// 5. 释放资源JDBCUtil.release(ps,conn);if(num > 0 )return true;return false;}public UserBean findUserByNameAndPassword(String name, String password){UserBean user = null;String sql = "select * from tb_users where name = '" + name + "' and password = '" + password +"'";return user;}
}

JDBC代码

package cn.edu.xaut.util;import java.sql.*;public class JDBCUtil {/* 返回数据库连接对象*/public static Connection getConnection() throws ClassNotFoundException, SQLException {Connection conn = null;// 1. 加载数据库的驱动Class.forName("com.mysql.cj.jdbc.Driver");// 2. 建立数据库的连接String url = "jdbc:mysql://localhost:3306/test6?serverTimezone=GMT%2b8";String dbUsername = "root";String dbPassword = "123456";conn = DriverManager.getConnection(url, dbUsername, dbPassword);return conn;}/*释放数据库资源 - 插入数据时*/public static void release(PreparedStatement ps, Connection conn) throws SQLException {if(ps != null){ps.close();ps = null;}if(conn != null){conn.close();conn = null;}}/*释放数据库资源 - 查询数据时*/public static void release(Statement st, ResultSet rs, Connection conn) throws SQLException {if(st != null){st.close();st = null;}if(rs != null){rs.close();rs = null;}if(conn != null){conn.close();conn = null;}}
}

目录结构

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/840318.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024退市新规

一、退市规则 退市包括主动退市和强制退市两类。强制退市分为交易类强制退市、财务类强制退市、规范类强制退市和重大违法类强制退市等四类情形。主动退市: 1、上市公司向证券交易所主动提出申请退市。 2、上市公司、上市公司股东或其他收购人通过向所有股东发出收购全部或部分…

【LLM训练】从零训练一个大模型有哪几个核心步骤?

【LLM训练】从零训练一个大模型有哪几个核心步骤? ⚠︎ 重要性:★★★ NLP Github 项目【LLM训练】从零训练一个大模型有哪几个核心步骤? ⚠︎ 重要性:★★★NLP Github 项目:NLP 项目实践:fasterai/nlp-project-practice 介绍:该仓库围绕着 NLP 任务模型的设计、训练、…

Day37--error和exception

Day37--error和exception Exception 异常 Error 错误 目录: 1、什么是异常 2、异常体系结构 3、Java异常处理机制 4、处理异常 5、自定义异常 6、总结 什么是异常 实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你…

从零开始:NetBox 4.1 Docker 部署和升级

前言 由于Netbox 官方的中文语言日渐完善,所以新出一个使用官方Docker源部署和升级的教程。 Netbox 系列文章:https://songxwn.com/categories/NetBox/环境介绍 Rocky Linux 9.5 (理论上也适用于RHEL系列的7-9版本) 南京大学镜像源ISO镜像下载:https://mirror.nju.edu.cn/…

如何只因算看到篮板需要的视场角

要脸别看这是一篇只因🐭文档,没有任何意义,不要看,但是邹老板让我写我就写了。 视场角是什么 视场角是在光学仪器中,以光学仪器的镜头为顶点,以被测目标的物象可通过镜头的最大范围的两条边缘构成的夹角。视场角的大小决定了光学仪器的视野范围,视场角越大,视野就越大…

编辑器快速打印html模板结构

一般编辑器,新建html文件时,会自带模板结构

dedeCMS 后台账号或密码忘记了怎么办

问题:后台管理员账号或密码忘记。 解决办法:数据库修改:打开数据库中的 dede_admin 表,找到管理员记录,将 pwd 字段的值改成 f297a57a5a743894a0e4,密码将被重置为 admin。重置工具:下载织梦后台管理员密码重置工具,将 resetpwd.php 放在网站根目录。 在浏览器上打开 h…

帝国CMS封面页调用指定栏目缩略图代码

调用栏目ID为2的栏目缩略图:[e:loop={"select classid,classname,classimg,intro from phome_enewsclass where classid=2",1,24,0}] <img src="<?=$bqr[classimg]?>" border="0" width="140" height="140" alt…

[Linux]exec系列函数

exec系列函数exec系列函数是用来进行程序的替换的。替换原理 当使用fork函数创建子进程后,子进程会执行与父进程相同的代码(但也有可能执行不同的代码分支),子进程会通过调用exec函数来执行另一个程序。当调用exec函数时,会用新程序的代码和数据来覆盖当前进程的代码和数据…

使用 JavaScript 的 XMLHttpRequest 或 Fetch API 发送 HTTP 请求时,GET 请求和 POST 请求处理参数的方式不同,这与 HTTP 协议的设计有关

使用 JavaScript 的 XMLHttpRequest 或 Fetch API 发送 HTTP 请求时,GET 请求和 POST 请求处理参数的方式不同,这与 HTTP 协议的设计有关 GET 请求的参数特点:GET 请求的参数通过 URL 传递。 原因: URL 表现方式:GET 请求的主要目的是从服务器获取资源。URL 是资源的唯一标…

IoU已经out了,试试这几个变体:GIoU、DIoU和CIoU介绍与对比分析

这是目标检测领域的首选评估指标。计算两个边界框的IoU时,如果它们有重叠区域,就测量重叠面积,然后除以两个框所覆盖的总面积。你是否曾经训练过一个模型,在评估指标上表现出色,但在实际可视化边界框时,却发现它在许多情况下都失败了?这可能是因为像简单交并比(IoU)这样的标准…