JavaWeb(Servlet预习)

案例1:基于jsp+Servlet实现用户登录验证

1.input.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<form action="loginCheck" method="post">
		用户名:<input type="text" name="username" /><br> 密码:<input
			type="password" name="userpwd" /><br> <input type="submit"
			value="提交"> <input type="reset">
	</form>
</body>
</html>

2.loginCheckServlet.java

package servlets;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/loginCheck")
public class LoginCheckServlet extends HttpServlet {
	public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
		String userName = request.getParameter("username");
		String userPwd = request.getParameter("userpwd");
		String info = "";
		if("abc".equals(userName)&&"123".equals(userPwd)) {
			info="欢迎你"+userName;
		}else {
			info="用户名或密码错误";
		}
		request.setAttribute("outputMessage", info);
		request.getRequestDispatcher("/info.jsp").forward(request, response);
	}
	
	
}

3.info.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=request.getAttribute("outputMessage") %>
</body>
</html>

案例2:基于jsp+Servlet+JavaBean实现用户注册

1.数据库连接类

package db;

import java.sql.*;

public class JdbcUtil {
	public static Connection getConnection() throws Exception{
		String driverName = "com.mysql.jdbc.Driver";
		String dbName = "students";
		String userName = "root";
		String userPwd = "1234";
		String url1 = "jdbc:mysql://localhost:3306/"+dbName;
		String url2 = "?user="+userName+"&password="+userPwd;
		String url3 = "&useUnicode=true&characterEncoding=UTF-8";
		String url = url1+url2+url3;
		
		Class.forName(driverName);
		Connection conn = DriverManager.getConnection(url);
		return conn;
	}
	
	public static void free(ResultSet rs,PreparedStatement pstmt,Connection conn) throws SQLException {
		if(rs!=null) {
			rs.close();
		}
		if(pstmt!=null) {
			pstmt.close();
		}
		if(conn!=null) {
			conn.close();
		}
	}
}

2.javabean实体类

package beans;

public class User {
	private String userName;
	private String userPwd;
	public User(String userName,String userPwd) {
		this.userName = userName;
		this.userPwd = userPwd;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserPwd() {
		return userPwd;
	}
	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}
	public User() {}
	
}

3.数据库访问类dao

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import javax.swing.plaf.basic.BasicInternalFrameTitlePane.RestoreAction;

import beans.User;
import db.JdbcUtil;

public class UserDao {
	
	//添加
	public void add(User user) throws Exception{
		Connection conn = null;
		PreparedStatement pstmt = null;
		conn = JdbcUtil.getConnection();
		String sql = "insert into user_b(username,userpassword) values(?,?)";
		pstmt = conn.prepareStatement(sql);
		pstmt.setString(1, user.getUserName());
		pstmt.setString(2, user.getUserPwd());
		pstmt.executeUpdate();
		JdbcUtil.free(null, pstmt, conn);
	}
	
	//查询全部
	public List<User> QueryAll() throws Exception{
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		List<User> UserList = new ArrayList<User>();
		conn = JdbcUtil.getConnection();
		String sql = "select * from user_b";
		pstmt = conn.prepareStatement(sql);
		rs = pstmt.executeQuery();
		while(rs.next()) {
			String xm = rs.getString("username");
			String mm = rs.getString("password");
			User user = new User(xm,mm);
			UserList.add(user);
		}
		JdbcUtil.free(rs, pstmt, conn);
		return UserList;
		
	}
	
	//修改
	public int update(User user) throws Exception{
		Connection conn = null;
		PreparedStatement pstmt = null;
		int result = 0;
		conn = JdbcUtil.getConnection();
		String sql = "update user_b set userpassword=? where username=?";
		pstmt.setString(1, user.getUserName());
		pstmt.setString(2, user.getUserPwd());
		result = pstmt.executeUpdate();
		JdbcUtil.free(null, pstmt, conn);
		return result;
	}
	
	//删除
	public int delete(int username) throws Exception{
		Connection conn = null;
		PreparedStatement pstmt = null;
		int result = 0;
		conn = JdbcUtil.getConnection();
		String sql = "delete from user_b where username=?";
		pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1, username);
		result = pstmt.executeUpdate();
		JdbcUtil.free(null, pstmt, conn);
		return result;
	}
	
}






4.注册页面a.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form>
		用户名:<input type="text" name="xm"><br>
		<br> 密码:<input type="password" name="mm"><br>
		<br> <input type="submit" value="提交">
	</form>
</body>
</html>

5.处理登录的servlet

6.结果页面b.jsp

例3:学生体质信息管理

student.java

package beans;

public class Student {

	private int id;
	private String name;
	private String sex;
	private int age;
	private float weight;
	private float height;

	public Student() {}
	public Student(int id,String name,String sex,int age,float weight,float height) {
		this.id = id;
		this.name = name;
		this.sex = sex;
		this.age = age;
		this.weight = weight;
		this.height = height;
	}
	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 getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public float getWeight() {
		return weight;
	}
	public void setWeight(float weight) {
		this.weight = weight;
	}
	public float getHeight() {
		return height;
	}
	public void setHeight(float height) {
		this.height = height;
	}
	
	
}

studentDao.java

package Dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import org.apache.tomcat.dbcp.dbcp2.PStmtKey;

import com.sun.org.apache.xerces.internal.util.EntityResolver2Wrapper;

import Util.JdbcUtil;
import beans.Student;

public class StudentDao {
	
	public Student create(Student stu) throws Exception{
		Connection conn = JdbcUtil.getConnection();
		String sql = "insert into stu_info (id,name,sex,age,weight,height) values(?,?,?,?,?,?)";
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1, stu.getId());
		pstmt.setString(2, stu.getName());
		pstmt.setString(3, stu.getSex());
		pstmt.setInt(4, stu.getAge());
		pstmt.setFloat(5, stu.getWeight());
		pstmt.setFloat(6, stu.getHeight());
		pstmt.executeUpdate();
		JdbcUtil.free(null, conn, pstmt);
		return stu;
	}
	
	public List<Student> findAll() throws Exception{
		Connection conn = JdbcUtil.getConnection();
		String sql = "select * from stu_info";
		PreparedStatement pstmt = conn.prepareStatement(sql);
		ResultSet rs = null;
		List<Student> students = new ArrayList<Student>();
		rs = pstmt.executeQuery();
		while(rs.next()) {
			Student stu2 = new Student();
			stu2.setId(rs.getInt(1));
			stu2.setName(rs.getString(2));
			stu2.setSex(rs.getString(3));
			stu2.setAge(rs.getInt(4));
			stu2.setWeight(rs.getFloat(5));
			stu2.setHeight(rs.getFloat(6));
			students.add(stu2);
		}
		JdbcUtil.free(rs, conn, pstmt);
		return students;
		
	}
	
	public void remove(Student stu) throws Exception{
		Connection conn = JdbcUtil.getConnection();
		String sql = "delete from stu_info where name=?";
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setString(1, stu.getName());
		pstmt.executeUpdate();
		JdbcUtil.free(null, conn, pstmt);
	}
	
	public void update(Student stu) throws Exception{
		Connection conn = JdbcUtil.getConnection();
		String sql = "update stu_info set id=?,name=?,sex=?,age=?,weight=?,height=? where name=? ";
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1, stu.getId());
		pstmt.setString(2, stu.getName());
		pstmt.setString(3, stu.getSex());
		pstmt.setInt(4, stu.getAge());
		pstmt.setFloat(5, stu.getWeight());
		pstmt.setFloat(6, stu.getHeight());
		pstmt.setString(7, stu.getName());
		pstmt.executeUpdate();
		JdbcUtil.free(null, conn, pstmt);
		
	}
}





JdbcUtil.java

package Util;

import java.sql.*;
import java.sql.DriverManager;

import com.mysql.cj.jdbc.Driver;

public class JdbcUtil {
	public static Connection getConnection() throws Exception {
		String dbName = "students";
		String driverName = "com.mysql.jdbc.Driver";
		String userName = "root";
		String userPwd = "1234";
		String url1 = "jdbc:mysql://localhost:3306/"+dbName;
		String url2 = "?user="+userName+"&password"+userPwd;
		String url3 = "&useUnicode=true&characterEncoding=UTF-8";
		String url = url1+url2+url3;
		
		Class.forName(driverName);
		Connection conn = DriverManager.getConnection(url);
		return conn;
	}
	
	
	public static void free(ResultSet rs,Connection conn,PreparedStatement pstmt) throws Exception {
		if(rs!=null) {
			rs.close();
		}
		if(conn!=null) {
			conn.close();
		}
		if(pstmt!=null) {
			pstmt.close();
		}
	}
	
	
}

servlet:   insert.java

package servlet;

import java.io.IOException;
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 Dao.StudentDao;
import beans.Student;

/**
 * Servlet implementation class Insert
 */
@WebServlet("/Insert")
public class Insert extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Insert() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		request.setCharacterEncoding("UTF-8");
		int id = Integer.parseInt(request.getParameter("id"));
		String name = request.getParameter("name");
		String sex = request.getParameter("sex");
		int age = Integer.parseInt(request.getParameter("age"));
		Float weight = Float.parseFloat(request.getParameter("weight"));
		Float height = Float.parseFloat("height");
		
		Student stu = new Student(id,name,sex,age,weight,height);
		
		StudentDao studentDao = new StudentDao();
		studentDao.create(stu);
		response.sendRedirect(StudentServlet?action=list);
		
		
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" import="java.util.*" import="beans.Student"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生信息管理</title>
</head>
<body>
	<a href="insert.jsp">添加学生</a>

	<table>
		<tr>
			<th>学号</th>
			<th>姓名</th>
			<th>性别</th>
			<th>年龄</th>
			<th>体重</th>
			<th>身高</th>
			<th>操作</th>
		</tr>
		<%
			List<Student> students = (List<Student>) request.getAttribute("students");
			if (students != null && !students.isEmpty()) {
				for (Student student : students) {
		%>
		<tr>
			<td><%=student.getId()%></td>
			<td><%=student.getName()%></td>
			<td><%=student.getSex()%></td>
			<td><%=student.getAge()%></td>
			<td><%=student.getWeight()%></td>
			<td><%=student.getHeight()%></td>
			<td><a href="edit.jsp?name=<%=student.getName()%>">编辑</a> <a
				href="delete.jsp?name=<%=student.getName()%>"
				onclick="return confirm('确定要删除吗?')">删除</a></td>
		</tr>

		<%
			}
		}
		%>


	</table>
</body>
</html>

insert.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="insert" method="post">
		<table>
			<tr>
				<td>学号</td>
				<td><input type="text" name="id"></td>
			</tr>
			<tr>
				<td>姓名</td>
				<td><input type="text" name="name"></td>
			</tr>
			<tr>
				<td>性别</td>
				<td><input type="text" name="sex"></td>
			</tr>
			<tr>
				<td>年龄</td>
				<td><input type="text" name="age"></td>
			</tr>
			<tr>
				<td>体重</td>
				<td><input type="text" name="weight"></td>
			</tr>
			<tr>
				<td>身高</td>
				<td><input type="text" name="height"></td>
			</tr>
			<tr>
				<td><input type="submit" value="提交"></td>
			</tr>

		</table>

	</form>
</body>
</html>

AI 代码审查Review工具 是一个旨在自动化代码审查流程的工具。它通过集成版本控制系统(如 GitHub 和 GitLab)的 Webhook,利用大型语言模型(LLM)对代码变更进行分析,并将审查意见反馈到相应的 Pull Request 或 Merge Request 中。此外,它还支持将审查结果通知到企业微信等通讯工具。 一个基于 LLM 的自动化代码审查助手。通过 GitHub/GitLab Webhook 监听 PR/MR 变更,调用 AI 分析代码,并将审查意见自动评论到 PR/MR,同时支持多种通知渠道。 主要功能 多平台支持: 集成 GitHub 和 GitLab Webhook,监听 Pull Request / Merge Request 事件。 智能审查模式: 详细审查 (/github_webhook, /gitlab_webhook): AI 对每个变更文件进行分析,旨在找出具体问题。审查意见会以结构化的形式(例如,定位到特定代码行、问题分类、严重程度、分析和建议)逐条评论到 PR/MR。AI 模型会输出 JSON 格式的分析结果,系统再将其转换为多条独立的评论。 通用审查 (/github_webhook_general, /gitlab_webhook_general): AI 对每个变更文件进行整体性分析,并为每个文件生成一个 Markdown 格式的总结性评论。 自动化流程: 自动将 AI 审查意见(详细模式下为多条,通用模式下为每个文件一条)发布到 PR/MR。 在所有文件审查完毕后,自动在 PR/MR 中发布一条总结性评论。 即便 AI 未发现任何值得报告的问题,也会发布相应的友好提示和总结评论。 异步处理审查任务,快速响应 Webhook。 通过 Redis 防止对同一 Commit 的重复审查。 灵活配置: 通过环境变量设置基
【直流微电网】径向直流微电网的状态空间建模与线性化:一种耦合DC-DC变换器状态空间平均模型的方法 (Matlab代码实现)内容概要:本文介绍了径向直流微电网的状态空间建模与线性化方法,重点提出了一种基于耦合DC-DC变换器的状态空间平均模型的建模策略。该方法通过数学建模手段对直流微电网系统进行精确的状态空间描述,并对其进行线性化处理,以便于系统稳定性分析与控制器设计。文中结合Matlab代码实现,展示了建模与仿真过程,有助于研究人员理解和复现相关技术,推动直流微电网系统的动态性能研究与工程应用。; 适合人群:具备电力电子、电力系统或自动化等相关背景,熟悉Matlab/Simulink仿真工具,从事新能源、微电网或智能电网研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网的动态建模方法;②学习DC-DC变换器在耦合条件下的状态空间平均建模技巧;③实现系统的线性化分析并支持后续控制器设计(如电压稳定控制、功率分配等);④为科研论文撰写、项目仿真验证提供技术支持与代码参考。; 阅读建议:建议读者结合Matlab代码逐步实践建模流程,重点关注状态变量选取、平均化处理和线性化推导过程,同时可扩展应用于更复杂的直流微电网拓扑结构中,提升系统分析与设计能力。
内容概要:本文介绍了基于物PINN驱动的三维声波波动方程求解(Matlab代码实现)理信息神经网络(PINN)求解三维声波波动方程的Matlab代码实现方法,展示了如何利用PINN技术在无需大量标注数据的情况下,结合物理定律约束进行偏微分方程的数值求解。该方法将神经网络与物理方程深度融合,适用于复杂波动问题的建模与仿真,并提供了完整的Matlab实现方案,便于科研人员理解和复现。此外,文档还列举了多个相关科研方向和技术服务内容,涵盖智能优化算法、机器学习、信号处理、电力系统等多个领域,突出其在科研仿真中的广泛应用价值。; 适合人群:具备一定数学建模基础和Matlab编程能力的研究生、科研人员及工程技术人员,尤其适合从事计算物理、声学仿真、偏微分方程数值解等相关领域的研究人员; 使用场景及目标:①学习并掌握PINN在求解三维声波波动方程中的应用原理与实现方式;②拓展至其他物理系统的建模与仿真,如电磁场、热传导、流体力学等问题;③为科研项目提供可复用的代码框架和技术支持参考; 阅读建议:建议读者结合文中提供的网盘资源下载完整代码,按照目录顺序逐步学习,重点关注PINN网络结构设计、损失函数构建及物理边界条件的嵌入方法,同时可借鉴其他案例提升综合仿真能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值