加深印象篇之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-8.0.28-winx64数据库win10系统安装步骤
一.官网下载安装包 下载地址:https://dev.mysql.com/downloads/mysql/ ↓↓↓选择如下图版本↓↓↓ 二.解压安装包到本地 三.新建记事本创建my.ini配置文件 四 ...
- holiday09
第九天 ping # 检测目标主机是否连接正常 $ ping IP地址 # 检测本地网卡工作正常 $ ping 127.0.0.1 ping 一般用于检测当前计算机到目标计算机之间的网络 是否通畅,数 ...
- lua 添加的时候去重
result = {} ids = {1,9,6,7}affs = {3,2,4,5,6}count =0for s in *ids result[s]=sfor p, v in pairs resu ...
- 访问提示'staticfiles' is not a registered tag library. Must be one of: admin_list admin_modify admin_urls cache i18n l10n log static tz
解决方法 前端模板中{% load staticfiles %}都修改为{% load static %} 因为在django3.x中这部分做了修改,前者无法识别,只能用后者
- Email Windows发送成功,Linux却发送失败的可能原因
一.linux端口被禁用,通过telnet查看.(我这里没问题) 二.排查环境参数是否一致(我这里没问题) 三.查看jdk版本原因,因为jdk1.8有的版本禁用了ssl 参阅文档:https://bl ...
- Executor框架详解
Executor框架详解 java的线程既是工作单元,也是执行机制.从jdk5开始,把工作单元与执行机制分离开来.工作单元包括Runnable和Callable,而执行机制由Executor框架提供. ...
- JavaScript常见事件记录
JavaScript常见事件记录 onblur: 元素失去焦点 onfocus: 元素获得焦点 onchange: 用户改变域的内容 onclick: 鼠标点击某个对象 ondblclick: 鼠标双 ...
- vue 数组对象去重
unique(arr) { const res = new Map(); return arr.filter((arr) => !res.has(arr.id) &&am ...
- django rest 自定义返回数据接口和异常处理
参考 Django rest framework自定义返回数据格式 一.简介 drf 默认返回的异常格式是这样的 1 { 2 "username": [ 3 "该字段是必 ...
- 打开CMD的方式
打开Cmd的方式: 1.开始+系统+命令提示符 2.Win键+R 3.在任意文件夹下,按住Shift键+鼠标右键点击,在此处打开命令行窗口 4.资源管理的地址栏前面加上Cmd路径 管理员运行方式 :系 ...