第一步:新建maven项目,项目中添加dao,entity,service,servlet,util包
第二步:导入依赖

第三步:数据库建表

第四步:entity实体包(疯转)

第五步:在util工具包中添加工具类

第六步:Dao包中创建Impl包,Impl包中放EmployeeDaoImpl类和UseDaoImpl类;Employee接口,UseDao接口

第七步:UseDao接口中写能实现登录和注册的方法

public Use findByUse(String username,String password)登录

public Integer register(Use use)(注册)

第八步:EmployeeDao接口写能实现增删改查的方法

public Integer addEmployee(Employee employee)

public Integer delById(Integer id)

public Integer updateEmployee(Employee employee)

public List<Employee>findall()

public Employee findbById(Integer id)

第九步:EmployeeDapImpl类(增删改查功能)

增public Integer addEmployee(Employee employee){

return supper . executeUpdate("insert into t_emolyee(name,salary,age)value(?,?,?)",new Object[]{

employee.getName();employee.getSalary(),employee.getAge()});}

删public Integer delById(Integer id){

return super.exectueUpdate("delete  from t_emolyee where id=?",new Objject [ ]{id});}

改public Integer updateEmployee(Employee employee){

return super.executeUpdate("update t_emolyee set name=?,salary=?,age=? where id=? ",new Object[]{

employee.getName();employee.getSalary(),employee.getAge(),employee.getId()});}

查public List<Employee>findall(){

List<Employee>list=new ArrayList<>();

String sql="select * from t_employee"

Object [] params=null;

rs=super.ececuteQuery(sql,params)'

try catch finally

while(rs.(next)){

Employee employee=new Employee();

employee . setId(rs.getInt("id"))

employee . setName(rs.getString("name"))

employee.setSalary(rs.getString("salary"))

employee. setAge(rs.getInt("age"))

list.add(employee)

return list;

查对象

public Employe findById(Integer id)

Employee employee=new Employee();

rs=super.ExecuteQuary("select * from t_employee where id=?",new Object []{id});

try catch finally

while (rs.next()){

employee.setId(rs.getInt("id"));

employee.setName(rs.getString("name"));

employee.setSalary(rs.getString("salary"));

employee.setAge(rs.getInt("age"));}

return employee;

第十步:UseDaoImpl类(实现登录和注册)

登录(去查询数据库的数据能否和username和passworad匹配)

public Use findByUse(String username,String password){

Use uu=null;

rs=super.executeQuary("select * from t_use where username=? and password=?",new Object[]{

username,pasword});

try catch finally

while(rs.next()){

uu=new Use()

uu.setUsername(rs.getString("username"));

uu.setRealname(rs.getString("realname"));
uu.setPaaword(rs.getString("password"));}

super.closecon

return uu;

注册(用添加方法。注册完成后,把注册的值传到数据库)

public Integer register(Use use){

return super.executeUpdate("insert into t_use(username,realname,password)value(?,?,?)",new Object[]{

use.getUsername(),use.getRealname(),use.getPassword});}

第十一步:

service包中添加Impl包包里放EmployeeServiceImpl类和UseServiceImpl类

service包中的EmployeeServiceImpl有一个EmployeeService接口

service包中的UseServiceImpl有一个UseService接口

接口中的方法与dao接口中的方法一致

第十二步:

在servlet包中添加Servlet 类型的UseServlet类和employeeServlet类

useServlet包:

public class UseServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
UseServiceImpl usi=new UseServiceImpl();
String action=request.getParameter("action");
if (action.equals("register")){
String username = request.getParameter("username");
String realname = request.getParameter("realname");
String password = request.getParameter("password");
Use use=new Use();
use.setUsername(username);
use.setRealname(realname);
use.setPassword(password);
Integer flag = usi.register(use);
if (flag>0){
request.getRequestDispatcher("login.jsp").forward(request,response);
}
}else if (action.equals("login")){
String username=request.getParameter("username");
String password=request.getParameter("password");
Use use=usi.findByUse(username,password);
if (use!=null){
request.getRequestDispatcher("EmployeeServlet?action=employeeList").forward(request,response);
} } } }

第十二步:配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">

<servlet>
<servlet-name>EmployeeServlet</servlet-name>
<servlet-class>cn.kgc.servlet.EmployeeServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>UseServlet</servlet-name>
<servlet-class>cn.kgc.servlet.UseServlet</servlet-class>
</servlet>

因为有两个Servlet所以要写两个。上面都写各自的路径,下面都写各自的url名
<servlet-mapping>
<servlet-name>UseServlet</servlet-name>
<url-pattern>/UseServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>EmployeeServlet</servlet-name>
<url-pattern>/EmployeeServlet</url-pattern>
</servlet-mapping>

</web-app>

第十三步:

在webapp中导入css样式(样式是别人给的直接复制粘贴过来)

第十四步:建立register.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>regist</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/style.css" />
</head>
<body>
<div id="wrap">
<div id="top_content">
<div id="header">
<div id="rightheader">
<p>
2009/11/20
<br />
</p>
</div>
<div id="topheader">
<h1 id="title">
<a href="#">main</a>
</h1>
</div>
<div id="navigation">
</div>
</div>
<div id="content">
<p id="whereami">
</p>
<h1>
注册
</h1>
<form action="UseServlet?action=register" method="post">把在网页中获得的对象塞到servlet中的requestg中
<table cellpadding="0" cellspacing="0" border="0"
class="form_table">
<tr>
<td valign="middle" align="right">
用户名:
</td>
<td valign="middle" align="left">
<input type="text" class="inputgri" name="username" />
</td>
</tr>
<tr>
<td valign="middle" align="right">
真实姓名:
</td>
<td valign="middle" align="left">
<input type="text" class="inputgri" name="realname" />
</td>
</tr>
<tr>
<td valign="middle" align="right">
密码:
</td>
<td valign="middle" align="left">
<input type="password" class="inputgri" name="password" />
</td>
</tr>

</table>
<p>
<input type="submit" class="button" value="注册 &raquo;" />
<input type="button" class="button" value="登录 &raquo;" onclick="javascript:window.location.href='login.jsp'" />有一个跳转到登录界面的按钮
</p>
</form>
</div>
</div>
<div id="footer">
<div id="footer_bg">
ABC@126.com
</div>
</div>
</div>
</body>
</html>

第十五步 建立login . jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>login</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/style.css" />
</head>
<body>
<div id="wrap">
<div id="top_content">
<div id="header">
<div id="rightheader">
<p>
2009/11/20
<br />
</p>
</div>
<div id="topheader">
<h1 id="title">
<a href="#">main</a>
</h1>
</div>
<div id="navigation">
</div>
</div>
<div id="content">
<p id="whereami">
</p>
<h1>
登录
</h1>
<form action="UseServlet?action=login" method="post">
<table cellpadding="0" cellspacing="0" border="0"
class="form_table">
<tr>
<td valign="middle" align="right">
username:
</td>
<td valign="middle" align="left">
<input type="text" class="inputgri" name="username" />
</td>
</tr>
<tr>
<td valign="middle" align="right">
password:
</td>
<td valign="middle" align="left">
<input type="password" class="inputgri" name="password" />
</td>
</tr>
</table>
<p>
<input type="submit" class="button" value="登录 &raquo;" />
<input type="button" class="button" value="注册 &raquo;" onclick="javascript:window.location.href='register.jsp'" />
</p>
</form>
</div>
</div>
<div id="footer">
<div id="footer_bg">
ABC@126.com
</div>
</div>
</div>
</body>
</html>

第十六步:建立list.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>regist</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/style.css" />
</head>
<body>
<div id="wrap">
<div id="top_content">
<div id="header">
<div id="rightheader">
<p>
2009/11/20
<br />
</p>
</div>
<div id="topheader">
<h1 id="title">
<a href="#">main</a>
</h1>
</div>
<div id="navigation">
</div>
</div>
<div id="content">
<p id="whereami">
</p>
<h1>
注册
</h1>
<form action="UseServlet?action=register" method="post">
<table cellpadding="0" cellspacing="0" border="0"
class="form_table">
<tr>
<td valign="middle" align="right">
用户名:
</td>
<td valign="middle" align="left">
<input type="text" class="inputgri" name="username" />
</td>
</tr>
<tr>
<td valign="middle" align="right">
真实姓名:
</td>
<td valign="middle" align="left">
<input type="text" class="inputgri" name="realname" />
</td>
</tr>
<tr>
<td valign="middle" align="right">
密码:
</td>
<td valign="middle" align="left">
<input type="password" class="inputgri" name="password" />
</td>
</tr>

</table>
<p>
<input type="submit" class="button" value="注册 &raquo;" />
<input type="button" class="button" value="登录 &raquo;" onclick="javascript:window.location.href='login.jsp'" />
</p>
</form>
</div>
</div>
<div id="footer">
<div id="footer_bg">
ABC@126.com
</div>
</div>
</div>
</body>
</html>

第十七步.建立EmoployeeServlet类

public class EmployeeServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
String action=request.getParameter("action");
if (action.equals("employeeList")){
EmployeeServiceImpl esi=new EmployeeServiceImpl();
List<Employee> list = esi.findAll();
request.setAttribute("list",list);
request.getRequestDispatcher("list.jsp").forward(request,response);
}
}
}

jsp+servlet实战项目的更多相关文章

  1. Jsp&Servlet入门级项目全程实录第1讲

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.jdbc数据库连接(略) 2.登录表单 2.1设置内边距 <dir style="padding- ...

  2. Jsp&Servlet入门级项目全程实录第8讲

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.添加dao public int studentAdd(Connection con,Student studen ...

  3. Jsp&Servlet入门级项目全程实录第7讲

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.获取搜索条件值 function searchStudent(){ $('#dg').datagrid('load ...

  4. Jsp&Servlet入门级项目全程实录第4讲

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.添加搜索.添加.修改.删除按钮 <div id="tb"> <div> ...

  5. Jsp&Servlet入门级项目全程实录第3讲

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.建立数据表及数据(略) 2.装载驱动,建立数据表 <link rel="stylesheet&qu ...

  6. Jsp&Servlet入门级项目全程实录第2讲

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.导入jquery-easyui-1.3.3包( http://www.jeasyui.com/) 2.在页面导入e ...

  7. Jsp&Servlet入门级项目全程实录第6讲

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.建立数据表及数据(略) 2.创建student model package com.java1234.model; ...

  8. Jsp&Servlet入门级项目全程实录第5讲

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.修改功能实现 dao public int gradeAdd(Connection con,Grade grade ...

  9. JSP/Servlet Web应用中.properties文件的放置与读取

    本地项目 在本地类库中,我经常使用当前目录来放置.properties文件,这时调用方只要引用我的jar,并且将我的.properties放在他的classpath里面即可,比如: p.load(ne ...

  10. Servlet MVC 项目实战实例

    MVC的架构模式,一直是JavaEE开发中所遵循的标准,如今很多框架都已经很好的实现了MVC,像大家所熟知的Struts,SpringMVC,JSF等,但是如果没有任何框架的支持,仅仅通过JavaWe ...

随机推荐

  1. mysql-高级功能(触发器、存储过程、视图、事务)

    目录 触发器-created trigger 1.触发器分为六种情况 2.语法结构 3.创建触发器 4.查询/删除触发器 存储过程-created procedure 1.创建存储过程 2.使用存储过 ...

  2. golang调用sdl2,播放pcm音频,报错signal arrived during external code execution。

    golang调用sdl2,播放pcm音频,报错signal arrived during external code execution. win10 x64下测试成功,其他操作系统下不保证成功. 采 ...

  3. Django4全栈进阶之路19 项目实战(用户管理):user_delete.html用户删除画面设计

    1.user_list.html删除按钮链接设置: <td> <a class="btn btn-danger btn-xs" href="{% url ...

  4. rust 中 str 与 String; &str &String

    String String 类型的数据和基本类型不同,基本类型的长度是固定的,所以可以在栈上分配,而String类型是变长的,所以需要在堆上分配,所以String 类型实际上是一个指向堆的指针.他的结 ...

  5. Visual Studio2019打开电脑摄像头

    #include<iostream> //opencv头文件 #include<opencv2/opencv.hpp> using namespace std; using n ...

  6. 2013年蓝桥杯C/C++大学B组省赛真题(第39级台阶)

    题目描述: 小明刚刚看完电影<第39级台阶>,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶.先迈左脚,然 ...

  7. 实例讲解Flink 流处理程序编程模型

    摘要:在深入了解 Flink 实时数据处理程序的开发之前,先通过一个简单示例来了解使用 Flink 的 DataStream API 构建有状态流应用程序的过程. 本文分享自华为云社区<Flin ...

  8. 发布:iNeuOS工业互联网操作系统 V5 Preview1 版本(自主可控)

    这半年来一直深耕包头,这个城市比较不错,但是推进项目的难度确实挺大的.与开发产品相比,后者更省心.但是光研发产品,没有项目依托,没办法产生价值.有些大学和研究院确实有好的产品,但是没有市场化能力,再好 ...

  9. 在 Istio 服务网格内连接外部 MySQL 数据库

    为了方便理解,以 Istio 官方提供的 Bookinfo 应用示例为例,利用 ratings 服务外部 MySQL 数据库. Bookinfo应用的架构图如下: 其中,包含四个单独的微服务: pro ...

  10. 前端Vue自定义简单通用省市区选择器picker地区选择器picker 收获地址界面模版

    前端Vue自定义简单通用省市区选择器picker地区选择器picker 收获地址界面模版,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin ...