jsp期末工具Java web

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>

//添加用户

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);

猜你喜欢

转载自blog.csdn.net/qq_45688164/article/details/118656474