加深印象篇之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 ...
随机推荐
- postman导出Collection文件
postman接口调用工具可以将曾经使用过的请求配置导出为文件保存,方法如下: 1.编写一个接口测试用例 2.按组分类 3.导出 参考来源: https://blog.csdn.net/IBLiplu ...
- 放苹果 tzoj2679 //自然数拆分 tzoj5827;(dp)
放苹果 tzoj2679 描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 第一行是测试数据的数目t ...
- developer mode
PS C:\Windows\system32> reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersio ...
- 力扣:面试题58 - II. 左旋转字符串
菜鸡小白不禁感叹:C++真好用!!! 题目描述: 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能.比如,输入字符串"abcdefg& ...
- c++ vtdcm对于压缩模式文档图片的读取
//获取dcm数据结构,一下图像数据仅针对单通道8字节数据 DcmFileFormat fileformat; OFCondition oc = fileformat.loadFile(dcmPath ...
- AI基本知识
一.什么是flops 对flops有疑惑,首先得先捋清这个概念: FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为 ...
- js 导出excle文件(多页)
--前提:页面生成相应的表格数据 例如: <table id="a"> <tr> <th></th> </tr> ...
- NPM镜像代理设置
用户目录C:\Users\xxx下建立.npmrc文件,内容如下: registry="https://registry.npm.taobao.org" ELECTRON_MIRR ...
- C# core 最简单的方式写入日志
System.IO.StreamWriter sw = System.IO.File.AppendText( LogPath + LogFielPrefix + "Error-" ...
- 延期!欧盟新标EN IEC 62368-1:2020延至2024年7月6日生效
近日,TC108X成员投票同意将EN IEC 62368-1:2020(对应IEC 62368-1第三版)的DOW (Date Of Withdrawn)日期由原先的2023年1月6日延长至2024年 ...