jsp期末
登录界面
用户:<input id="name1" value="1" placeholder="(不能为空)" name="name" type="text"/>
密码:<input id="password1" value="1" placeholder="(不能为空)" name="password" type="password"/>
</form>
<button id="cick" onclick="testDL()">登录</button>
<a href="register.jsp">
<input type="button" value="注册">
</a>
<a href="find.jsp">
<input type="button" value="查询">
</a>
<a href="deleteUser.jsp">
<input type="button" value="删除">
</a>
<a href="UPpassword.jsp">
<input type="button" value="更新">
</a>
<a href="Table.jsp">
<input type="button" value="分页">
</a>
<script>
</script>
<table id="showTable" width="80%" align="conter"></table>
servlet界面
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
//接收数据
String name=request.getParameter("name");
String pw=request.getParameter("password");
//验证用户
//if(BooleanSelect.login(name,pw)||(name.equals("")&&pw.equals("")))
//String sql="select * from user where name='"+name+"'";
String sql="select * from user where name='"+name+"'";
List<HashMap<String,Object>> list1 = new ArrayList<>();
list1= DBList.getDBlist(sql);
if(list1.size()>0) {
String sqlPW = list1.get(0).get("password").toString();
if (BooleanSelect.login(name, pw)&&sqlPW.equals(pw)) {
//定义一个jison类型数据返回
String strJsonArray= DataReaderTest.login(name,pw);
JSONObject jsonObject = new JSONObject();
jsonObject.put("result", "1");
jsonObject.put("msg", "登录成功");
jsonObject.put("name",name);
jsonObject.put("password",pw);
//session
request.getSession().setAttribute("name",name);
jsonObject.put("data", strJsonArray);
String string = jsonObject.toString();
response.getWriter().println(string);
} else {
JSONObject jsonObject = new JSONObject();
jsonObject.put("result", "1");
jsonObject.put("msg", "密码错误");
jsonObject.put("data", "空");
String name1 = jsonObject.toString();
response.getWriter().println(name1);
}
}
else {
JSONObject jsonObject = new JSONObject();
jsonObject.put("result", "0");
jsonObject.put("msg", "用户名错误");
jsonObject.put("data", "空");
String name1 = jsonObject.toString();
response.getWriter().println(name1);
}
}
//json数组构建
HashMap<String,String> map1=new HashMap<>();
map1.put("name","zhangsan");
map1.put("sex","nan");
HashMap<String,String> map2=new HashMap<>();
map2.put("name","zhangsan");
map2.put("sex","nan");
HashMap<String,String> map3=new HashMap<>();
map3.put("name","zhangsan");
map3.put("sex","nan");
List<HashMap<String,String>> list=new ArrayList<>();
list.add(map1);
list.add(map2);
list.add(map3);
JSONArray json1=JSONArray.fromObject(list);
String strJsonArray = json1.toString();
//图片上传jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String basspath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();
%>
<html>
<head>
<title>Title</title>
<script src="js/jquery-ui.min.js"></script>
<script src="js/jquery.js"></script>
<script src="js/upImage.js"></script>
</head>
<body>
<%-- 解决多次上传;路径出错问题,使用绝对路径--%>
<form id="UPForm" action="<%=basspath%>/UpImage" method="post" enctype="multipart/form-data">
name:<input name="name" type="text" value="b12"/>
image:<input name="upImage" type="file">
<input type="submit" onclick="" value="提交"/>
</form>
<div>
</div>
</body>
</html>
//图片上传ser
public class UpImage extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
//检验文件路径是否需要创建
String fileDir=request.getServletContext().getRealPath("upload/");
File saveFile=new File(fileDir);
if(!saveFile.isDirectory()&&!saveFile.exists())
{
saveFile.mkdir();
}
//判断是否有相关数据上传
if(ServletFileUpload.isMultipartContent(request))
{
//1、设置环境,创建磁盘工厂
DiskFileItemFactory factory=new DiskFileItemFactory();
//2、创建文件解析器
ServletFileUpload upload=new ServletFileUpload(factory);
//3、上传的参数设置
upload.setFileSizeMax(1024*1024*240);//文件大小
upload.setHeaderEncoding("utf-8");//上传格式
//4、提取文件
try {
//form表单上传的元素
List<FileItem> list = upload.parseRequest(request);
HashMap<String,Object> hashMap=new HashMap<>();
//遍历元素集合,分类处理,文件与文本
for(FileItem fileItem:list)
{
//普通文本
if(fileItem.isFormField())
{
//用户名,密码提取 属性的值
String name = fileItem.getFieldName();
//取数据值
String value=fileItem.getString("utf-8");//防止出现乱码
hashMap.put(name,value);
}else //图片处理
{
String fileName=fileItem.getName();
if(fileName==null||fileName.trim().equals(""))
{
continue;
}
//获取当前的时间戳,返回长整型
Long t1=System.currentTimeMillis();
//文件的后缀
String t2=fileName.substring(fileName.indexOf("."));
fileName = Long.toString(t1)+t2;
//读写操作
//读取
InputStream in=fileItem.getInputStream();
byte[] buffer = new byte[1024];
//创建标识,判断数据是否读取完全
int len= 0;
//创建输出流,用于写入文件
FileOutputStream out = new FileOutputStream(fileDir+fileName);
//循环读取数据
while ((len = in.read(buffer)) != -1) {
//写入到文件
out.write(buffer, 0, len);
}
//关闭输入输出流
in.close();
out.close();
//保存文件路径
hashMap.put("path",fileName);
//查重,回应,返回值。
}
// List<HashMap<String,Object>> listHash=new ArrayList<>();
// listHash.add(hashMap);
// JSONArray json1=JSONArray.fromObject(list);
// String strJsonArray = json1.toString();
//String name=hashMap.get("name").toString();
//String path=hashMap.get("path").toString();
//dbTools.u_inmage.Add(name,path);
//
}
String path=hashMap.get("path").toString().replace("\\","\\\\");
String name=hashMap.get("name").toString();
if(dbTools.u_inmage.Add(name,path)>0)
{
JSONObject jsonObject = new JSONObject();
jsonObject.put("result", "1");
jsonObject.put("msg", "注册成功");
jsonObject.put("data",hashMap);
String string = jsonObject.toString();
response.getWriter().println(string);
}else{
JSONObject jsonObject = new JSONObject();
jsonObject.put("result", "1");
jsonObject.put("msg", "上传失败");
jsonObject.put("data",hashMap);
String string = jsonObject.toString();
response.getWriter().println(string);
}
} catch (FileUploadException e) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("result", "0");
jsonObject.put("msg", "发生异常");
jsonObject.put("data","");
String string = jsonObject.toString();
response.getWriter().println(string);
e.printStackTrace();
}
}
}
//分页查询js
var datas;
function testDL() {
$.ajax({
url: "/Servlet",
type: "get", //选用传输方法
dataType: "json", //设置数据类型
async: false, //异步访问 不需要等
data: $('#form').serialize(),
//传递的数据多种写法 {key var}
success:function(res) {
datas=res.data;
if(res.msg=="登录成功"){
$("#show").show();
var cur_page = 0;
//var t = document.querySelector('tbody');
var page_num = document.querySelector('#page_num');
var row_num = 10;//每页显示行数
//默认加载第一页
(() => jump_to(cur_page))();
//jump_to(cur_page); 效果同上
//上一页
function pre() {
if (cur_page > 0) {
cur_page--;
jump_to(cur_page);
}
}
//下一页
function next() {
if (cur_page < (datas.length / row_num) - 1) {
cur_page++;
jump_to(cur_page);
}
};
//开始翻页
function jump_to(page) {
var str="";
for(var i=page * row_num;i<(page + 1) * row_num && i < datas.length;i++)
{
str+="<tr><td>"+datas[i].id+"</td><td>"+datas[i].name+"</td><td><a href='#news1' onclick=\"deleteTr(this)\">删除</a></td></tr>";
}
$('#show_body').empty();
$('#show_body').append(str);
page_num.value = page + 1;
}
document.querySelector('#cur_page').innerText = `/${Math.ceil(datas.length / row_num)}`;
document.querySelector('#pre').onclick = function() {pre()};
document.querySelector('#next').onclick = function() {next()};
document.querySelector('#jump').onclick = function() {
if (page_num.value < (datas.length / row_num) + 1 && page_num.value - 1 !== cur_page && page_num.value > 0 && Number.isInteger(parseInt(page_num.value))) {
cur_page = page_num.value - 1;
jump_to(cur_page);
}
};
}
else{
$('#show_body').empty();
alert(res.msg);
$("#show").hide();
}
},
error:function ()
{
alert("登录错误");
}
});
}
// 删除方法
function deleteTr(object) {
// 获取table节点
var table = object.parentNode.parentNode.parentNode;
// 获取te节点
var tr = object.parentNode.parentNode;
// 删除(并返回)当前节点的指定子节点。
table.removeChild(tr);
var no = object.parentNode.parentNode.getElementsByTagName("td")[0].innerHTML;
var name = object.parentNode.parentNode.getElementsByTagName("td")[1].innerHTML;
$($.ajax({
url: "/delUser",
type: "get", //选用传输方法
dataType: "json", //设置数据类型
async: false, //异步访问 不需要等
data: "name="+name,
//传递的数据多种写法 {key var}
success: function (res) {
alert(res.msg);
testDL();
},
error:function ()
{
alert("删除失败");
}
}));}
function fetchTdValue(tableId){
var table = document.getElementById(tableId);
var trLength = table.rows.length;
var tdLength = 0;
var tr;
var td;
var tdValue = "";
if(trLength){
for(var i = 1;i<trLength;i++){
tr = table.rows[i];
tdLength = tr.cells.length;
if(tdLength){
for (var j=2;j<tdLength;j++){
td = tr.cells[j];
tdValue = tdValue + td.innerHTML+";";
}
}
tdValue = tdValue +"@@@";
}
}
return tdValue;};
function delval(i) {
var h= $("#"+i+"").parent().attr("id");
alert(h);};
//JDBC
url=jdbc:mysql://localhost:3306/login_user? useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
user=root
password=1111
driver=com.mysql.cj.jdbc.Driver
/*
* JDBC工具类
*/
public class JDBCUtils {
/**
* 获取连接对象
*/
public static String url;
public static String user;
public static String password;
public static String driver;
//静态代码块只需要读取一次
static {
try {
//创建Properties集合类
Properties pro=new Properties();
//获取src路径下文件--ClassLoader 类加载器
File dir=new File("");
String path=dir.getAbsolutePath();
path="E:\\new work space\\JSP\\2021_4_11\\src\\jdbc.properties";
//System.out.println(path);
//加载文件
pro.load(new FileReader(path));
//提取数据赋值
url=pro.getProperty("url");
user=pro.getProperty("user");
password=pro.getProperty("password");
driver=pro.getProperty("driver");
//注册驱动
Class.forName(driver);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
//释放资源
public static void close(Statement stmt,Connection conn){
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(ResultSet rs,Statement stmt,Connection conn){
if (rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}}
//用户获取
public class DataReaderTest {
public static String login(String name, String password){
if(name==null||password==null) {
return null;
}
Connection cn=null;
Statement stmt=null;
ResultSet rs=null;
String strJsonArray=null;
List<HashMap<String,String>> list=list=new ArrayList<>();;
try {
//1、获取连接
cn=JDBCUtils.getConnection();
//2、定义sql语句
String sql="select * from user";
//3、获取sql语句
stmt=cn.createStatement();
//4、执行查询
rs = stmt.executeQuery(sql);
//5、判断
if(!rs.next()){
return null;
}
do{
HashMap<String,String> map=new HashMap<>();
map.put("id",rs.getString("id"));
map.put("name",rs.getString("name"));
list.add(map);
// map.clear(); 不能关掉,我也不知为啥
}while (rs.next());
JSONArray json1=JSONArray.fromObject(list);
strJsonArray = json1.toString();
return strJsonArray;
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(rs,stmt,cn);
}
return null;
}}
//获取表内全部信息
public static List<HashMap<String,Object>> getDataList(){
List<HashMap<String,Object>> list=new ArrayList<>();
try {
//1、获取链接
cn=JDBCUtils.getConnection();
//2、定义sql语句
sql="select * from "+tableName+"";
//3、获取sql语句
stmt=cn.createStatement();
//4、执行查询
rs = stmt.executeQuery(sql);
//5、接收结果封装数据
while(rs.next()){
HashMap<String,Object> map=new HashMap<>();
ResultSetMetaData rsme=rs.getMetaData();
for(int i=1;i<=rsme.getColumnCount();i++){
String key=rsme.getColumnName(i);
Object value=rs.getObject(i);
map.put(key,value);
}
list.add(map);
}
} catch (SQLException e) {
e.printStackTrace();
}
JDBCUtils.close(rs,stmt,cn);
return list;
}
//过滤器
@WebFilter(filterName = "LoginFilter")
public class LoginFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
chain.doFilter(req, resp);
//格式强转
HttpServletRequest request=(HttpServletRequest)req;
HttpServletResponse response=(HttpServletResponse)resp;
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
HttpSession session=request.getSession(true);
String url=request.getRequestURI().toString();
//服务器文件路径
String cPath = request.getContextPath();
if(url.contains("login.jsp")||url.contains("LoginServlet"))
{
chain.doFilter(request,response);
}else
if(session.getAttribute("用户关键字")!=null)
{
chain.doFilter(request,response);
}else{
response.setHeader("refresh",",url"+cPath+"/login.jsp");
}
}
public void init(FilterConfig config) throws ServletException {
}}
//xml
<servlet>
<servlet-name>UpImage</servlet-name>
<servlet-class>Test.UpImage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UpImage</servlet-name>
<url-pattern>/UpImage</url-pattern>
</servlet-mapping>
<!--过滤器-->
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>javaBean.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
//添加用户
扫描二维码关注公众号,回复:
13459046 查看本文章
public static int Add(String name,String password) {
try {
//1、获取链接
cn=JDBCUtils.getConnection();
//2、定义sql语句
String sql="insert into user(name,password) values('"+name+"','"+password+"')";
//3、Statement获取sql对象
stmt=cn.createStatement();
//4、执行sql
count=stmt.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
//5、释放资源
JDBCUtils.close(stmt,cn);
//6、返回处理结果
return count;
}
String sql="DELETE FROM user where name='"+name+"'";
String sql="UPDATE USER SET ID='"+newID+"' WHERE ID='"+oldID+"'";
cn=DriverManager.getConnection(url, user, password);