加深印象篇之Servlet
环境配置
需要配置web.xml文件,

<web-app>
<servlet>
<servlet-name>你起的一个类的名字</servlet-name>
<servlet-class>该类的全部路径</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>同上面那个类的名字</servlet-name>
<url-pattern>/加上那个类的名字</url-pattern>
</servlet-mapping>
</web-app>
要使用到Servlet相关类,需要提前将相关导包导入到pom.xml文件中(导包的导入在Maven项目就已经将网址分享啦!网址很好用,咱就是说)
Servlet类中,包含两个方法:doGet方法和doPost方法,其中,doGet方法是将数据写入到网页中,即与在jsp文件中写<%%>这样子的Java代码是一样的道理,但servlet更加受欢迎一些,更常见一些,应用更广一些;而doPost方法,主要适用于将数据传递到表单中,达到修改数据库数据的目的;
相关文件的编写
1、JDBCUtils.java文件(存储连接数据库的各种操作:连接、查询、修改,关闭等)
import java.sql.*;
public class JDBCUtils {
private String driver="com.mysql.cj.jdbc.Driver";
private String url="jdbc:mysql://localhost:3306/ad";
private String root="root";
private String password="20214063";
private Connection conn=null;
private Statement stmt=null;
private ResultSet rs=null;
//打开连接
public boolean connect(String sql) throws ClassNotFoundException, SQLException {
boolean b=false;
Class.forName(driver);
conn= DriverManager.getConnection(url,root,password);
b=true;
return b;
}
//修改
public void update(String sql) throws SQLException {
boolean b=false;
stmt=conn.createStatement();
stmt.execute(sql);
b=true;
}
//查询
public void print(String sql) throws SQLException {
boolean b = false;
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
//关闭连接
public void close() throws SQLException {
if(rs!=null){
rs.close();
}
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}
}
2、userServlet.java文件(用于读取用户的相关信息,并进行判断)
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.SQLException;
@WebServlet("/userServlet")
public class userServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name=req.getParameter("name");
String id=req.getParameter("id");
if(name==null||id==null){
System.out.println("用户名或者密码不能为空!");
resp.sendRedirect("index.jsp");
return ;
}
userBean user=new userBean();
boolean isValue= false;
try {
isValue = user.isValid(name,id);
} catch (SQLException e) {
throw new RuntimeException(e);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
if(isValue){
System.out.println("登录成功!");
req.getSession().setAttribute("name",name);
resp.sendRedirect("index.jsp");
return ;
}
}
}
3、userBean.java文件(用于存放具体的判断验证是否有效的代码,上个文件只是引用其中的具体代码)
public class userBean {
//登录验证
public boolean isValid(String name,String id) throws SQLException, ClassNotFoundException {
boolean b=false;
JDBCUtils uu=new JDBCUtils();
if(uu.connect()){
String sql="select * from we where name="+name+" and id="+id+"";
uu.print(sql);
if(uu.next()){
b=true;
return b;
}
b=false;
return b;
}
return b;
}
}
4、index.jsp(编写的登录界面,直接传递值传到页面中)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录界面</title>
</head>
<body>
<div id="loginDiv" style="...">
<form action="userServlet?name=1" id="form" method="post">
<h1 id="loginMsg">LOGIN IN</h1>
<div id="用户名或密码不正确"></div>
<p>Username:<input id="username" name="username" type="text"></p>
<p>Id:<input id="id" name="id" type="password"></p>
<div id="subDiv">
<input type="submit" class="button" value="login up">
<input type="reset" class="button" value="reset">
<a href="register.jsp">没有账号?</a>
</div>
</form>
</div>
</body>
</html>
当然还有相关的注册界面、验证是否登陆成功、注册成功界面的编写,其基本结构与index.jsp结构一致,自己自行编写即可。
加深印象篇之Servlet的更多相关文章
- Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】
Servlet的调用图 前面我们已经学过了Servlet的生命周期了,我们根据Servlet的生命周期画出Servlet的调用图加深理解 Servlet的细节 一个已经注册的Servlet可以被多次映 ...
- C++中const关键字的使用方法,烦透了一遍一遍的搜,总结一下,加深印象!!!
之前一直在学习C/C++,关于const的使用,这里出现一点,那里出现一点.知识用时方恨少,这一段时间正好各种笔试题,其中关于const的用法也是层出不穷,所以疲于在书本上各种翻,这里汇总一下,加深自 ...
- JMeter接口测试印象篇(win10)
参考博文1:https://www.cnblogs.com/suim1218/p/9257369.html 参考博文2:https://blog.csdn.net/u011541946/article ...
- 淘宝(阿里百川)手机客户端开发日记第十一篇 JSP+Servlet
由于本人从事.net开发已有多年经验,今天由于工作需要,我只能学习下JSP+Servlet,至于java web提供了更好的开发框架MVC,现在由于时间关系,我只好用JSP+Servlet来搭建服务器 ...
- Java从入门到精通——基础篇之Servlet与JSP的区别
一.基本概念 1.1 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器 ...
- servlet篇 之 servlet的访问
三:servlet的访问 使用web.xml文件中的这个<url-pattern>标签中的映射路径,来访问servlet 6.1 在浏览器的地址栏中,直接输入servlet映射的路径来访问 ...
- servlet篇 之servlet实现
一:如何写一个servlet 实现/继承 如下 接口/类 Servlet 接口 有五个抽象方法 GenericServlet 抽象类 有一个抽象方法 HttpServlet 抽象类 ...
- servlet篇 之 servlet概念及其功能实现
Servlet概念: 在JavaWeb中,把那些可以使用浏览器通过url的形式来访问的java类,叫做servlet. servlet就是java类中的一种,只不过这种java类有一个特殊的功能,就是 ...
- 如何设置页面自动刷新第一篇?? servlet setHeader("refresh","2")
import java.io.IOException; import java.util.Random; import javax.servlet.ServletException; import j ...
- [技巧篇]01.Servlet的优化模版代码
Servlet.java的模版 #---------------------------------------------# # <aw:description>Template for ...
随机推荐
- 第三章 mysql 数据库接口程序以及SQL语句操作
mysql 数据库接口程序以及SQL语句操作 用于管理数据库: 命令接口自带命令 DDL:数据定义语言(create drop ) DCL: 数据控制语言(grant revoke) DML: 数据 ...
- java websocket详细
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...
- 使用vite创建vue3+ts项目完整流程
1.创建项目 npm init vite@latest 依次输入项目名称.选择vue.选择ts 2.引入依赖 cd 项目名称 npm install 3.启动项目 npm run dev 4.引入vu ...
- Leetcode48 旋转图像
48. 旋转图像 难度中等432 给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要使用另一个矩阵 ...
- B-JUI框架使用探究
附上项目DEMO地址: 点我跳转 下载地址: 点我跳转 先了解一下什么是B-JUI框架: B-JUI(Bootstrap for DWZ)富客户端框架,基于DWZ-jUI富客户端框架修改. 主 ...
- [2009年NOIP普及组] 分数线划定
世博会志愿者的选拔工作正在A市如火如荼的进行.为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根据计划录取人数的150%划定,即如果计划录取m ...
- 【PDF】数理科学 2001年01月号 特集:「時間とは何か」- 時間が生んだ世界観とパラダイム -
书本详情 标题:数理科学 2001年01月号 特集:「時間とは何か」- 時間が生んだ世界観とパラダイム - | 数理科学編集部 | 年份:2001出版社:サイエンス社ISBN10:暂无信息5ISBN1 ...
- JDBC概念和基本用法
概念: JDBC (Java DataBase Connectivity):Java数据库连接,Java语言操作数据库.是官方(sun公司)定义的一套操作所有关系型数据库的规则, 即接口.各个 ...
- luogu 3676小清新数据结构题
真·小清新... 其实本题正解是动态点分治,但是考虑到那个东西需要先大力推导一波再套上一个幻想乡战略游戏的搞法,所以还不如大力推导一波,然后无脑套上一个树剖+线段树写法... 首先我们考虑没有换根操作 ...
- 用python判断三角形的形状
# coding:utf-8 class point: def __init__(self,x,y,name): self.x = x self.y = y self.name = name '''两 ...