环境配置

需要配置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的更多相关文章

  1. Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】

    Servlet的调用图 前面我们已经学过了Servlet的生命周期了,我们根据Servlet的生命周期画出Servlet的调用图加深理解 Servlet的细节 一个已经注册的Servlet可以被多次映 ...

  2. C++中const关键字的使用方法,烦透了一遍一遍的搜,总结一下,加深印象!!!

    之前一直在学习C/C++,关于const的使用,这里出现一点,那里出现一点.知识用时方恨少,这一段时间正好各种笔试题,其中关于const的用法也是层出不穷,所以疲于在书本上各种翻,这里汇总一下,加深自 ...

  3. JMeter接口测试印象篇(win10)

    参考博文1:https://www.cnblogs.com/suim1218/p/9257369.html 参考博文2:https://blog.csdn.net/u011541946/article ...

  4. 淘宝(阿里百川)手机客户端开发日记第十一篇 JSP+Servlet

    由于本人从事.net开发已有多年经验,今天由于工作需要,我只能学习下JSP+Servlet,至于java web提供了更好的开发框架MVC,现在由于时间关系,我只好用JSP+Servlet来搭建服务器 ...

  5. Java从入门到精通——基础篇之Servlet与JSP的区别

    一.基本概念 1.1 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器 ...

  6. servlet篇 之 servlet的访问

    三:servlet的访问 使用web.xml文件中的这个<url-pattern>标签中的映射路径,来访问servlet 6.1 在浏览器的地址栏中,直接输入servlet映射的路径来访问 ...

  7. servlet篇 之servlet实现

    一:如何写一个servlet 实现/继承 如下 接口/类 Servlet   接口 有五个抽象方法 GenericServlet  抽象类     有一个抽象方法 HttpServlet   抽象类 ...

  8. servlet篇 之 servlet概念及其功能实现

    Servlet概念: 在JavaWeb中,把那些可以使用浏览器通过url的形式来访问的java类,叫做servlet. servlet就是java类中的一种,只不过这种java类有一个特殊的功能,就是 ...

  9. 如何设置页面自动刷新第一篇?? servlet setHeader("refresh","2")

    import java.io.IOException; import java.util.Random; import javax.servlet.ServletException; import j ...

  10. [技巧篇]01.Servlet的优化模版代码

    Servlet.java的模版 #---------------------------------------------# # <aw:description>Template for ...

随机推荐

  1. JavaScript 调用Bomb后端云

                                                     用简单的代码 展示代码的魅力 Bmob 是后端云 全方位一体化的后端服务平台 提供可靠的 Server ...

  2. mysql 设置外键约束SET FOREIGN_KEY_CHECKS=1

    问题描述:Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构 解决方法: 在Mysql中取消外键约束: SET FOREIGN_KEY_CHECKS=0; 然后将原来表的数据导出到sq ...

  3. CCF 202012-1 期末预测之安全指数

    #include <iostream> //#include <bits/stdc++.h> #include <string> using namespace s ...

  4. node.js发送短信验证码(附带60秒倒计时插件)

    推荐一个简单且功能齐全的发送短信验证码接口1.安装下载后的SDK只包含一个zhenzisms.js文件,直接导入到工程中即可使用.下载 2.用法引入模块 const zhenzismsClient = ...

  5. C++ push_back()函数应用

    最近在学习Opencv,用C++写程序,做了一个虚拟画笔的项目,即通过摄像头采集视频图像信息,识别视频中的画笔,并画笔在空中的划痕显示在视频图像上.在进行到划痕显示的,由于视频是实时采集的,检测到的画 ...

  6. javaScript的介绍

    JavaScript Java Script的概述: 1组成 三部分组成 ecmaScript 基础语法(es5) dom document object 莫得了 文档对象模型 (操作html文档内容 ...

  7. 通过modbus+socket+GPRS采集硬件数据

    # !/usr/bin/python # -*- coding: UTF-8 -*- import sys import os TESTCASE = os.path.dirname(os.path.a ...

  8. qt的窗口

      1.窗口.字部件以及窗口类型(记得不牢固的) (1)#include<QtWidget> Widgets是在Qt中创建用户界面的主要元素. Widgets可以显示数据和状态信息,接收用 ...

  9. Python模块——os模块详解

  10. c++ read and save txt

    read and save #include "util/image_util.h" #ifdef USE_PANGOLIN_VIEWER #include "pango ...