zoukankan      html  css  js  c++  java
  • 如何开发简单的javaweb项目,jsp+javabean+servlet

    一、相关的软件下载和环境配置

    1、下载并配置JDK。

    2、下载eclipse。

    3、下载并配置apache-tomcat(服务器)。

    4、下载MySQL(数据库)。

    5、下载Navicat for MySQL(数据库可视化工具),方便对数据库的操作。

    6、下载jdbc用来实现eclipse中的项目与数据库实现连接。

    ---以上可在网上查询教程

    二、新建web项目

    1.

     

    然后点击next,

    继续点next

    勾选Generate web.xml

    然后finish

    2.新建两个包

    然后User就是我们封装的数据

    package com.better.bean;
    
    public class User {
    private int userid;
    private String username;
    private String password;
    public User() {
        
    }
    public int getUserid() {
        return userid;
    }
    public void setUserid(int userid) {
        this.userid = userid;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
    }

    建立类文件时一样

    而servlet建立时不一样,如下

     然后servlet代码如下

    addservlet.java

    package com.better.servlet;
    
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class addservlet
     */
    @WebServlet("/addservlet")
    public class addservlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        /**
         * @see HttpServlet#HttpServlet()
         */
        public addservlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // TODO Auto-generated method stub
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            String username = request.getParameter("username");
            String psword = request.getParameter("password");
            String url = "jdbc:mysql://localhost:3306/demodb?&useSSL=false&serverTimezone=UTC";
            String user = "root";
            String password = "9527";
            Connection conn = null;
            PreparedStatement ps = null;
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                conn = DriverManager.getConnection(url, user, password);
            } catch (ClassNotFoundException e) {
                response.getWriter().print("加载驱动失败");
            } catch (SQLException e) {
                response.getWriter().print("连接数据库失败");
            }
            try {
                String sql = "INSERT INTO user(username,password) VALUES (?,?)";
                ps = conn.prepareStatement(sql);
                ps.setString(1, username);
                ps.setString(2, psword);
                int row = ps.executeUpdate();
                // 判断是否更新成功
                if (row > 0)
                    // 更新成输出信息
                    response.getWriter().print("成功添加了 " + row + "条数据!");
            } catch (SQLException e) {
                response.getWriter().print("注册用户信息失败");
            }
            try {
                if (ps != null) {
                    ps.close();
                    ps = null;
                }
                if (conn != null) {
                    conn.close();
                    conn = null;
                }
    
            } catch (Exception e) {
                response.getWriter().print("数据库关闭异常");
            }
            response.sendRedirect("main.jsp");
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }

    然后你要配置web.xml文件

    点开它

    <servlet>
        <description></description>
        <display-name>addservlet</display-name>
        <servlet-name>addservlet</servlet-name>
        <servlet-class>com.better.servlet.addservlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>addservlet</servlet-name>
        <url-pattern>/com.better.servlet/addservlet</url-pattern>
      </servlet-mapping>

    把这段代码插进去

    然后就可以使用这个servlet了

    接着是deleteservlet.java、searchservlet.java、updateservlet.java、checkservlet.java

    package com.better.servlet;
    
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class updateservlet
     */
    @WebServlet("/updateservlet")
    public class updateservlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public updateservlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            String username = request.getParameter("username");
            String psword = request.getParameter("password");
            String url = "jdbc:mysql://localhost:3306/demodb?&useSSL=false&serverTimezone=UTC";
            String user = "root";
            String password = "9527";
            Connection conn = null;
            PreparedStatement ps = null;
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                conn = DriverManager.getConnection(url, user, password);
            } catch (ClassNotFoundException e) {
                response.getWriter().print("加载驱动失败");
            } catch (SQLException e) {
                response.getWriter().print("连接数据库失败");
            }
            try {
                String sql = "UPDATE user SET password=? WHERE username = ? ";
                ps=conn.prepareStatement(sql);
                ps.setString(1, psword);
                ps.setString(2, username);
                int row = ps.executeUpdate();
                // 判断是否更新成功
                if (row > 0)
                    // 更新成输出信息
                    response.getWriter().print("成功修改了 " + row + "条数据!");
            } catch (SQLException e) {
                response.getWriter().print("修改密码失败");
            }
            try {
                if (ps != null) {
                    ps.close();
                    ps = null;
                }
                if (conn != null) {
                    conn.close();
                    conn = null;
                }
    
            } catch (Exception e) {
                response.getWriter().print("数据库关闭异常");
            }
            response.sendRedirect("main.jsp");
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }
    package com.better.servlet;
    
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class checkservlet
     */
    @WebServlet("/checkservlet")
    public class checkservlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public checkservlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            String adminname = request.getParameter("adminname");
            String adminword = request.getParameter("adminword");
            String url = "jdbc:mysql://localhost:3306/demodb?&useSSL=false&serverTimezone=UTC";
            String user = "root";
            String password = "9527";
            Connection conn = null;
            PreparedStatement ps = null;
            ResultSet rs=null;
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                conn = DriverManager.getConnection(url, user, password);
            } catch (ClassNotFoundException e) {
                response.getWriter().print("加载驱动失败");
            } catch (SQLException e) {
                response.getWriter().print("连接数据库失败");
            }
            try{
                String sql="SELECT * FROM admin WHERE adminname = ? and adminword=? "; 
                ps=conn.prepareStatement(sql);
                ps.setString(1, adminname);
                ps.setString(2, adminword);
                rs=ps.executeQuery();     //将sql语句传至数据库,返回的值为一个字符集用一个变量接收 
                if(rs.next()){    //next()获取里面的内容
                    request.getRequestDispatcher("main.jsp") 
                    .forward(request, response); 
                }
                else request.getRequestDispatcher("login.jsp") 
                .forward(request, response); 
            }catch(SQLException e){    
                response.getWriter().print("数据库操作异常");
            }
            try{
                if(rs!=null){
                    rs.close();
                    rs=null;
                }
                if(ps!=null){
                    ps.close();
                    ps=null;
                }
                if(conn!=null){
                    conn.close();
                    conn=null;
                }
                
            }catch(Exception e){
                response.getWriter().println("数据库关闭异常");
                
            }
            response.getWriter().append("Served at: ").append(request.getContextPath());
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }
    package com.better.servlet;
    
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class deleteservlet
     */
    @WebServlet("/deleteservlet")
    public class deleteservlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public deleteservlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            String username = request.getParameter("username");
            String url = "jdbc:mysql://localhost:3306/demodb?&useSSL=false&serverTimezone=UTC";
            String user = "root";
            String password = "9527";
            Connection conn = null;
            PreparedStatement ps = null;
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                conn = DriverManager.getConnection(url, user, password);
            } catch (ClassNotFoundException e) {
                response.getWriter().print("加载驱动失败");
            } catch (SQLException e) {
                response.getWriter().print("连接数据库失败");
            }
            try {
                String sql = "DELETE FROM user WHERE username=?";
                ps=conn.prepareStatement(sql);
                ps.setString(1, username);
                int row = ps.executeUpdate();
                // 判断是否更新成功
                if (row > 0)
                    // 更新成输出信息
                    response.getWriter().print("成功删除了 " + row + "条数据!");
            } catch (SQLException e) {
                response.getWriter().print("删除用户失败");
            }
            try {
                if (ps != null) {
                    ps.close();
                    ps = null;
                }
                if (conn != null) {
                    conn.close();
                    conn = null;
                }
    
            } catch (Exception e) {
                response.getWriter().print("数据库关闭异常");
            }
            //重定向到main页面
            response.sendRedirect("main.jsp");
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }
    package com.better.servlet;
    
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class searchservlet
     */
    @WebServlet("/searchservlet")
    public class searchservlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public searchservlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            String username = request.getParameter("username");
            String url = "jdbc:mysql://localhost:3306/demodb?&useSSL=false&serverTimezone=UTC";
            String user = "root";
            String password = "9527";
            Connection conn = null;
            PreparedStatement ps = null;
            ResultSet rs=null;
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                conn = DriverManager.getConnection(url, user, password);
            } catch (ClassNotFoundException e) {
                response.getWriter().print("加载驱动失败");
            } catch (SQLException e) {
                response.getWriter().print("连接数据库失败");
            }
            try{
                String sql="SELECT * FROM user WHERE username = ? "; 
                ps=conn.prepareStatement(sql);
                ps.setString(1, username); 
                rs=ps.executeQuery();     //将sql语句传至数据库,返回的值为一个字符集用一个变量接收 
                while(rs.next()){    //next()获取里面的内容
                    response.getWriter().println(rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3));
                                     //getString(n)获取第n列的内容
                                        //数据库中的列数是从1开始的
                }
            }catch(SQLException e){
                
                response.getWriter().print("查询用户失败");
            }
            try{
                if(rs!=null){
                    rs.close();
                    rs=null;
                }
                if(ps!=null){
                    ps.close();
                    ps=null;
                }
                if(conn!=null){
                    conn.close();
                    conn=null;
                }
                
            }catch(Exception e){
                response.getWriter().println("数据库关闭异常");
                
            }
            
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }

     然后是完整的web.xml文件配置

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
      <display-name>Better</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      <servlet>
        <description></description>
        <display-name>addservlet</display-name>
        <servlet-name>addservlet</servlet-name>
        <servlet-class>com.better.servlet.addservlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>addservlet</servlet-name>
        <url-pattern>/com.better.servlet/addservlet</url-pattern>
      </servlet-mapping>
      <servlet>
        <description></description>
        <display-name>updateservlet</display-name>
        <servlet-name>updateservlet</servlet-name>
        <servlet-class>com.better.servlet.updateservlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>updateservlet</servlet-name>
        <url-pattern>/com.better.servlet/updateservlet</url-pattern>
      </servlet-mapping>
      <servlet>
        <description></description>
        <display-name>deleteservlet</display-name>
        <servlet-name>deleteservlet</servlet-name>
        <servlet-class>com.better.servlet.deleteservlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>deleteservlet</servlet-name>
        <url-pattern>/com.better.servlet/deleteservlet</url-pattern>
      </servlet-mapping>
      <servlet>
        <description></description>
        <display-name>searchservlet</display-name>
        <servlet-name>searchservlet</servlet-name>
        <servlet-class>com.better.servlet.searchservlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>searchservlet</servlet-name>
        <url-pattern>/com.better.servlet/searchservlet</url-pattern>
      </servlet-mapping>
      <servlet>
        <description></description>
        <display-name>checkservlet</display-name>
        <servlet-name>checkservlet</servlet-name>
        <servlet-class>com.better.servlet.checkservlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>checkservlet</servlet-name>
        <url-pattern>/com.better.servlet/checkservlet</url-pattern>
      </servlet-mapping>
    </web-app>

    login.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>登录页面</title>
    </head>
    <body
        background="file:///D:/eclipse-workplace/Better/WebContent/image/星空.jpg">
        <form action="checkservlet" method=post>
            <center>
                <table>
                    <tr>
                        <td><font color="white">输入管理员名:</font></td>
                        <td><INPUT type=txt name=adminname></td>
                    </tr>
                    <tr>
                        <td><font color="white">输入管理员密码:</font></td>
                        <td><INPUT type=password name=adminword></td>
                    </tr>
                    <tr colspan=2>
                        <td><INPUT type=submit value=登录></td>
                    </tr>
                </table>
            </center>
        </form>
    </body>
    </html>

    main.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>主界面</title>
    </head>
    <body>
    <center><h1>主菜单</h1><center>
    <table><center>
    <h2 align="center"> 
      <a href="Add.jsp">添加用户</a> 
    </h2> 
    <h2 align="center"> 
      <a href="Delete.jsp">删除用户</a> 
    </h2> 
    <h2 align="center"> 
      <a href="Update.jsp">修改用户</a> 
    </h2> 
    <h2 align="center"> 
      <a href="Search.jsp">查询用户</a> 
    </h2> 
    </table></center>
    </body>
    </html>

    Add.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>添加</title>
    </head>
    <script type="text/javascript">
             function check(form) {
                  if(form.username.value=='') {
                        alert("请输入用户名!");
                        form.username.focus();
                        return false;
                   }
                   if(form.password.value==''){
                        alert("请输入登录密码!");
                        form.password.focus();
                        return false;
                     }
                     return true;
             }
    </script>
    <body>
    <form action="addservlet" method="post">
        用户名:  <input type=text name="username" size="18" value="" ><br>
        登录密码:<input type="password" name="password" size="18" value=""/>      
               <input type=submit name="submit1" value="注册" onclick="return check(this.form)">  
    </form>
    </body>
    </html>

    Delete.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>删除</title>
    </head>
    <script type="text/javascript">
             function check(form) {
                  if(form.username.value=='') {
                        alert("请输入用户名!");
                        form.username.focus();
                        return false;
                   }
                   
             }
    </script>
    <body>
    <form action="deleteservlet" method="post">
        想删除的用户名:  <input type=text name="username" size="18" value="" ><br>     
               <input type=submit name="submit1" value="删除" onclick="return check(this.form)">  
    </form>
    </body>
    </html>

    Update.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>修改</title>
    </head>
    <script type="text/javascript">
             function check(form) {
                  if(form.username.value=='') {
                        alert("请输入用户名!");
                        form.username.focus();
                        return false;
                   }
                   if(form.password.value==''){
                        alert("请输入新密码!");
                        form.password.focus();
                        return false;
                     }
                     return true;
             }
    </script>
    <body>
    <form action="updateservlet" method="post">
        用户名:  <input type=text name="username" size="18" value="" ><br>
       新密码:<input type="password" name="password" size="18" value=""/>      
               <input type=submit name="submit1" value="修改" onclick="return check(this.form)">  
    </form>
    </body>
    </html>

    Search.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>查找</title>
    </head>
    <script type="text/javascript">
             function check(form) {
                  if(form.username.value=='') {
                        alert("请输入用户名!");
                        form.username.focus();
                        return false;
                   }
                   
             }
    </script>
    <body>
    <form action="searchservlet" method="post">
        想查找的用户名:  <input type=text name="username" size="18" value="" ><br>     
               <input type=submit name="submit1" value="查找" onclick="return check(this.form)">  
    </form>
    </body>
    </html>

    再就是建一个数据库两张表

    User这张表

    再就是管理员这张表

    admin

  • 相关阅读:
    Spring MVC 核心组件详解
    Spring MVC 入门就这一篇
    Spring 事务解决方案
    【UGUI源码分析】Unity遮罩之Mask详细解读
    游戏开发中不同时区下的时间问题
    ARTS第十三周(阅读Tomcat源码)
    Win10 电脑安装.NET低版本提示“这台计算机中已经安装了 .NET Framwork 4.6.2或版本更高的更新”问题
    Dynamics 365 Setup 提示SqlServer 存在
    Dynamics CRM "Verification of prerequisites for Domain Controller promotion failed. Certificate Server is installed."
    Dynamics CRM
  • 原文地址:https://www.cnblogs.com/quxiangjia/p/10093663.html
Copyright © 2011-2022 走看看