小型的java WEB项目一个页面(第三段)jsp界面

注:这是一个简单的展示数据在前端的功能;在后期,我会继续分享SSM框架和一些有趣的知识点,

这里所需的css样式和js样式就不列出来了

注意如果在jsp页面使用for循环一定要加如下的一行代码:
在这里插入图片描述

通过for循环遍历list集合,将从后端传入的集合展示在前端页面

在这里插入图片描述

jsp展示界面:

在这里插入图片描述

如果没加过滤器,启动后在浏览器应该是这样的页面;需要把上面的域名加上访问的资源:

在这里插入图片描述

然后跳转页面:

注意看搜索栏

在这里插入图片描述

最终展示效果:

在这里插入图片描述

想要通过前端页面CURD可在URL追加参数;

!!!参数很重要,数据的作用域也非常重要

在这里插入图片描述

以下为login登录页面的原码,style标签为样式内容,可不看

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
	String path = request.getContextPath();
%>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
	<title>用户登录</title>

	<!-- Bootstrap -->
	<link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">

	<!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
	<!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
	<!--[if lt IE 9]>
	<script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
	<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
	<![endif]-->
</head>

<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>

<!-- 导入用户自定义css -->
<style type="text/css">
	@import url("../css/login.css");
</style>
<style type="text/css">
	body{background: #ebebeb;font-family: "Helvetica Neue","Hiragino Sans GB","Microsoft YaHei","\9ED1\4F53",Arial,sans-serif;color: #222;font-size: 12px;}
*{padding: 0px;margin: 0px;}
.logo{margin-top: 30px}
.top_div{background: #008ead;width: 100%;height: 360px;}
.login_div{background: rgb(255, 255, 255); margin: -100px auto auto; border: 1px solid rgb(231, 231, 231); border-image: none; width: 400px; height: 200px; text-align: center;}
.ipt{border: 1px solid #d3d3d3;padding: 10px 10px;	width: 290px;border-radius: 4px;	padding-left: 35px;	-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);box-shadow: inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s}
.ipt:focus{border-color: #66afe9;outline: 0;-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}
.u_logo{background: url("../images/login/username.png") no-repeat;padding: 10px 10px;	position: absolute;	top: 43px;	left: 60px;}
.p_logo{background: url("../images/login/password.png") no-repeat;	padding: 10px 10px;	position: absolute;	top: 12px;	left: 60px;}
a{text-decoration: none;}
.tou{background: url("../images/login/tou.png") no-repeat;width: 97px;height: 92px;position: absolute;top: -87px;left: 140px;}
.left_hand{background: url("../images/login/left_hand.png") no-repeat;width: 32px;height: 37px;position: absolute;top: -38px;left: 150px;}
.right_hand{background: url("../images/login/right_hand.png") no-repeat;width: 32px;height: 37px;position: absolute;top: -38px;right: -64px;}
.initial_left_hand{background: url("../images/login/left-handing.png") no-repeat;width: 30px;height: 20px;position: absolute;top: -12px;left: 100px;}
.initial_right_hand{background: url("../images/login/right_handing.png") no-repeat;width: 30px;height: 20px;position: absolute;top: -12px;right: -112px;}
.left_handing{background: url("../images/login/left-handing.png") no-repeat;width: 30px;height: 20px;position: absolute;top: -24px;left: 139px;}
.right_handinging{background: url("../images/login/right_handing.png") no-repeat;width: 30px;height: 20px;position: absolute;top: -21px;left: 210px;}
.submit_div{height: 20px; line-height: 20px; margin-top: 10px; border-top-color: rgb(231, 231, 231); border-top-width: 1px; border-top-style: solid;}
.submit{background: rgb(0, 142, 173); padding: 7px 10px; border-radius: 4px; border: 1px solid rgb(26, 117, 152); border-image: none; color: rgb(255, 255, 255); font-weight: bold; cursor:pointer;}
.copy{text-align:center; position:absolute; z-index:1; bottom:10px; width:100%;line-height:25px; font-family:tahoma,'微软雅黑'}
.copy a{color:#333}
.copy a:hover{color:#000}
</style>

<body>
<div class="top_div" style="padding-top:100px;text-align:center">
   <span style="font-size:40px;color:white;" class="logo">锋迷网后台管理系统</span>
</div>
<div class="login_div">
	<div style="width: 165px; height: 96px; position: absolute;">
		<div class="tou"></div>
		<div class="initial_left_hand" id="left_hand"></div>
		<div class="initial_right_hand" id="right_hand"></div>
	</div>
	<form action="<%=path%>/LoginServlet">
		<p style="padding: 30px 0px 10px; position: relative;">
			<span class="u_logo"></span>
			<input class="ipt" id="name" type="text" name="username" placeholder="请输入用户名或邮箱" value="admin"> 
		</p>
		<p style="position: relative;">
			<span class="p_logo"></span>         
			<input class="ipt" id="password" name="password" type="password" placeholder="请输入密码" value="admin">   
		</p>
		<div class="submit_div">
			<p style="margin: 0px 55px 20px 45px;">
				<span style="float: right;">
					<input type="submit" class="submit" value=" 登 录 ">
				</span>
			</p>
		</div>
	</form>
</div>
<div class="copy">Copyright &copy;2019  版权所有</a> 提供技术支持</div>
</body>
</html>
展示用户的jsp页面:
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%
	String path = request.getContextPath();
%>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title>用户登录</title>

<!-- Bootstrap -->
<link
	href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"
	rel="stylesheet">

<!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
<!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
<!--[if lt IE 9]>
	<script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
	<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
	<![endif]-->
</head>

<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script
	src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script
	src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>

<style>
th {
	text-align: center;
}
</style>
<script type="text/javascript">
	function deleteConfirm(id, name) {

		confirm
				.show(
						'溫馨提示',
						'您确定要刪除[' + name + ']用户吗?',
						{
							'确定' : {
								'primary' : true,
								'callback' : function() {
									location.href = "${pageContext.request.contextPath}/UserDeleteServlet?id="
											+ id;
								}
							}
						});
	}
	function test() {
		confirm("dfgvb");
	}
</script>
</head>
<body>
	<nav class="navbar navbar-inverse" style="margin-bottom: 0px;">
		<div class="container">
			<!-- Brand and toggle get grouped for better mobile display -->
			<div class="navbar-header">
				<button type="button" class="navbar-toggle collapsed"
					data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"
					aria-expanded="false">
					<span class="sr-only">Toggle navigation</span> <span
						class="icon-bar"></span> <span class="icon-bar"></span> <span
						class="icon-bar"></span>
				</button>
				<a class="navbar-brand" href="#">锋迷网管理系统</a>
			</div>

			<!-- Collect the nav links, forms, and other content for toggling -->
			<div class="collapse navbar-collapse"
				id="bs-example-navbar-collapse-1">
				<ul class="nav navbar-nav">
					<li><a href="<%=path%>/FuzzySelectGoodsServlet">商品管理 <span
							class="sr-only">(current)</span></a></li>
					<li><a href="<%=path%>/GoodsTypeSelectServlet">商品类型管理</a></li>
					<li class="active"><a href="<%=path%>/UserFuzzyServlet">用户管理</a></li>
					<li><a href="<%=path%>/OrderFuzzySelectServlet">订单管理</a></li>
					<li><a href="../before/index.html">直通锋迷网</a></li>
				</ul>

				<ul class="nav navbar-nav navbar-right">
					<li><a href="<%=path%>/after/login.jsp">${username}</a></li>
					<li><a href="#"><span class="glyphicon glyphicon-log-in"
							style="padding-left: 0px"></span></a></li>
					<li><a href="<%=path%>/LogOutServlet"
						style="padding-left: 0px">退出</a></li>

				</ul>
			</div>
			<!-- /.navbar-collapse -->
		</div>
		<!-- /.container-fluid -->
	</nav>
	<div class="jumbotron" style="padding-top: 20px; padding-bottom: 25px">
		<div class="container">
			<h2>用户列表</h2>
		</div>
	</div>
	<div class="container">
		<form class="form-inline"
			action="${pageContext.request.contextPath}/UserFuzzyServlet"
			method="post">
			<div class="col-md-4">
				<div class="form-group">
					<label for="exampleInputName2">用户姓名</label> <input type="text"
						class="form-control" id="exampleInputName2" placeholder="输入姓名"
						name="username">
				</div>
			</div>
			<div class="col-md-3" style="text-align: right; padding-right: 25px;">
				<div class="form-group">
					<label>性别</label> <input type="radio" name="sex" value="男"><input type="radio" name="sex" value="女"></div>
				<button type="submit" class="btn btn-info"
					style="margin-left: 20px;">查询</button>
			</div>
		</form>
		<div>
			<a href="${pageContext.request.contextPath}/after/newuser_register.jsp"><button type="submit" class="btn btn-info"
					style="margin-left: 20px;">添加</button></a>
		</div>
	</div>

	<!--以下显示表格-->
	<div class="container" style="margin-top: 20px;">
		<form id="deleteFrom"
			action="${pageContext.request.contextPath}/UserSelectServlet"
			method="post">
			<table style="text-align: center; margin-right: 10px; width: 99%"
				class="table table-striped table-hover table-bordered">
				<thead style="text-align: center;">
					<tr>
						<th>序号</th>
						<th>用户姓名</th>
						<th>手机号</th>
						<th>性别</th>
						<th>邮箱</th>
						<th>删除</th>
						<th>修改信息</th>
					</tr>
				</thead>
				<tbody>
					<c:forEach items="${list}" var="user">
						<tr>
							<td>${user.id}</td>
							<td>${user.username}</td>
							<td>${user.phone}</td>
							<td>${user.sex}</td>
							<td>${user.mail}</td>
							<td><a class="glyphicon glyphicon-trash" color="#5BC0DE"
								style="text-decoration: none" name="id"
								href="<%=path%>/UserDeleteServlet?id=${user.id}"
								onclick="if(confirm('是否确定删除'+'${user.username}'+'?')==false)return false"></a></td>
							<td><a class="glyphicon glyphicon-edit" color="#5BC0DE"
								style="text-decoration: none" name="goodsid"
								href="<%=path%>/UserResetresetServlet?id=${user.id}"
								onclick="if(confirm('是否确定修改'+'${user.username}'+'的信息?')==false)return false"></a></td>
						</tr>
					</c:forEach>
				</tbody>
			</table>
		</form>
	</div>

	<%
		Object objNo = request.getAttribute("pageNo");
		Object objCount = request.getAttribute("pageCount");
		int pageNo = 0;
		int pageCount = 0;
		if (objNo != null) {
			pageNo = Integer.parseInt(objNo.toString());
		}
		if (objCount != null) {
			pageCount = Integer.parseInt(objCount.toString());
		}
	%>

	<div class="container">
		<nav aria-label="..." class="navbar-right" style="margin-right: 15px">
			<ul class="pagination">
				<li><a class=" btn-info"
					href="<%=path%>/UserFuzzyServlet?pageNo=1" aria-label="Previous">
						<span aria-hidden="true">首页 </span>
				</a></li>
				<%
					if (pageNo > 1) {
				%>
				<li><a class=" btn-info"
					href="<%=path %>/UserFuzzyServlet?pageNo=${pageNo-1}"
					aria-label="Previous"> <span aria-hidden="true"> « </span></a></li>
				<%
					} else {
				%>

				<li class="disabled"><a href="#" aria-label="Previous">« <span
						class="sr-only">(current) </span></a></li>
				<%
					}
					if (pageCount > pageNo) {
				%>

				<li><a class="btn"
					href="<%=path %>/UserFuzzyServlet?pageNo=${pageNo+1}&username=${username1}&sex=${sex}">${pageNo}</a></li>
				<li><a class="btn-info"
					href="<%=path %>/UserFuzzyServlet?pageNo=${pageNo+1}&username=${username1}&sex=${sex}"
					aria-label="Next"><span aria-hidden="true">»</span></a></li>

				<%
					} else {
				%>

				<li><a class=" btn-info"
					href="<%=path %>/UserFuzzyServlet?pageNo=${pageNo}&username=${username1}&sex=${sex}">${pageNo}</a></li>
				<li class="disabled"><a href="#" aria-label="Previous">»<span
						class="sr-only">(current) </span></a></li>
				<%
					}
				%>
				<li><a class=" btn-info"
					href="<%=path %>/UserFuzzyServlet?pageNo=${pageCount}&username=${username1}&sex=${sex}"
					aria-label="Previous"> <span aria-hidden="true">尾页 </span></a></li>
			</ul>
		</nav>
	</div>
</body>
</html>

最后给大家一个删除功能的Servlet原码,以Servlet获取前端通过name属性带回的值,创建一个Service层的对象调用底层Dao层的方法,完成功能
package com.mhj.servlet;

import com.mhj.service.UserService;
import com.mhj.service.impl.UserServiceImpl;

import javax.servlet.ServletContext;
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;

@WebServlet("/UserDeleteServlet")
public class UserDeleteServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        String uid = request.getParameter("id");
        ServletContext servletContext = request.getServletContext();
        UserService us = new UserServiceImpl();
        int i = Integer.parseInt(uid);
        int j = us.userDelete(i);
        System.out.println(j);
        System.out.println(uid);
        if (j > 0) {
            response.sendRedirect(servletContext.getContextPath() + "/UserFuzzyServlet");
        } else {
            response.getWriter().append("未知错误,请联系管理员");
        }
    }
}

Dao层:

@Override
    public int userDelete(int id) {
        String sql = "delete from t_user where id = ?";
        Object[] obj = {id};
        return this.setUpdate(sql, obj);
    }
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值