运用JSP制作一个小型的档案管理系统

本例仿照面向对象与多线程综合实验中的小型档案管理系统软件,制作了一个小型档案管理系统的网页。
首先是登录界面

index.jsp

<%@ page contentType="text/html;charset=gb2312" language="java" %>
<html>
  <head>
    <title>登录界面</title>
  </head>
  <body>
    <form method="post" id="form1" name="form1" onsubmit="return check()" action="check.jsp">
      <script language="JavaScript">
        function check() {
          if(document.form1.name.value==""){
            alert("账号不能为空");
          }
          else if(document.form1.password.value==""){
            alert("密码不能为空");
          }
        }
      </script>
      <table border="0" cellspacing="0" align="center">
        <tr>
          <td>选择身份</td>
          <td>
            <input name="role" type="radio" value="browser" checked="checked">浏览者
            <input name="role" type="radio" value="operator">操作员
            <input name="role" type="radio" value="administrator">管理员
          </td>
        </tr>
        <tr>
          <td>账号</td>
          <td><input name="name" type="text" size="20"></td>
        </tr>
        <tr>
          <td>密码</td>
          <td><input name="password" type="password" size="20"></td>
        </tr>
        <tr>
          <td colspan="2" align="center">
            <input name="submit" type="submit" value="登录">
            <input name="reset" type="reset" value="重置">
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>

登录界面效果如下:

接着是对登录账号和密码的判断界面(也可以通过别的方法来实现,不一定非要额外增加一个界面)

check.jsp

<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
<%
    request.setCharacterEncoding("gb2312");
    Connection connection;
    String uname=request.getParameter("name");
    String upassword=request.getParameter("password");
    String urole=request.getParameter("role");
    session.setAttribute("username",uname);
    Class.forName("com.mysql.jdbc.Driver");
    Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/document","root","123456");
    Statement statement=connect.createStatement();
    String sql="select * from user_info where username='"+uname+"'";
    ResultSet resultSet=statement.executeQuery(sql);
    if(resultSet.next()){
        if(upassword.equals(resultSet.getObject("password"))){
            if(urole.equals(resultSet.getObject("role"))){
                out.println("<script language='JavaScript'>alert('登录成功')</script>");
                if(urole.equals("administrator")){
                    response.setHeader("refresh","0;url=admin.jsp");
                }
                else if(urole.equals("operator")){
                    response.setHeader("refresh","0;url=opera.jsp");
                }
                else{
                    response.setHeader("refresh","0;url=browser.jsp");
                }
            }
            else{
                out.println("<script language='JavaScript'>alert('账号不存在,请重新输入')</script>");
                response.setHeader("refresh","0;url=index.jsp");
            }
        }
        else{
            out.println("<script language='JavaScript'>alert('密码错误,请重新输入')</script>");
            response.setHeader("refresh","0;url=index.jsp");
        }
    }
    else{
        out.println("<script language='JavaScript'>alert('账号不存在,请重新输入')</script>");
        response.setHeader("refresh","0;url=index.jsp");
    }
    resultSet.close();
    statement.close();
    connect.close();
%>
</body>
</html>

然后是管理员界面

admin.jsp

<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<html>
<head>
    <title>管理员界面</title>
</head>
<body>
<form method="post" id="form2" name="form2" action="">
    <script language="JavaScript">
        function check() {
            if(document.form2.admin_name.value==""){
                alert("账号不能为空");
                return false;
            }
            else return true;
        }
    </script>
  <table border="1" cellspacing="0" align="center">
      <tr align="center">
          <td colspan="2">角色</td>
          <td colspan="2">账号</td>
          <td colspan="2">密码</td>
      </tr>
      <%
          Class.forName("com.mysql.jdbc.Driver");
          Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/document","root","123456");
          Statement statement=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
          String sql="select * from user_info";
          ResultSet resultSet=statement.executeQuery(sql);
          while(resultSet.next()) {
              String name=resultSet.getString("username");
              String password=resultSet.getString("password");
              String role=resultSet.getString("role");
      %>
      <tr align="center">
          <td colspan="2"><%=role%></td>
          <td colspan="2"><%=name%></td>
          <td colspan="2"><%=password%></td>
      </tr>
      <%
          }
      %>
      <tr align="center">
          <td>请选择角色</td>
          <td>
              <select name="admin_role" size="1">
                  <option value="administrator">administrator</option>
                  <option value="operator">operator</option>
                  <option value="browser">browser</option>
              </select>
          </td>
          <td>账号</td>
          <td><input name="admin_name" type="text" size="20"></td>
          <td>密码</td>
          <td><input name="admin_password" type="password" size="20"></td>
      </tr>
      <tr align="center">
          <script language="JavaScript">
              function submitfrom(path){
                  if(check()){
                      $('form2').action=path;
                      $('form2').submit();
                  }
              }
          </script>
          <td colspan="2"><button type="submit" onclick="submitfrom('add.jsp')">添加用户</button> </td>
          <td colspan="2"><button type="submit" onclick="submitfrom('update.jsp')">修改用户</button> </td>
          <td colspan="2"><button type="submit" onclick="submitfrom('del.jsp')">删除用户</button> </td>
      </tr>
  </table>
    <table border="1" cellspacing="0" align="center">
        <tr align="center">
            <td>名称</td>
            <td>创建者</td>
            <td>创建时间</td>
            <td>描述</td>
            <td>文件名</td>
        </tr>
        <%
            sql="select * from doc_info";
            resultSet=statement.executeQuery(sql);

            while(resultSet.next()) {
                String ID=resultSet.getString("ID");
                String creator=resultSet.getString("creator");
                Timestamp timestamp=resultSet.getTimestamp("timestamp");
                String description=resultSet.getString("description");
                String filename=resultSet.getString("filename");
        %>
        <tr align="center">
            <td ><%=ID%></td>
            <td ><%=creator%></td>
            <td ><%=timestamp%></td>
            <td ><%=description%></td>
            <td ><a href="/DM_war_exploded/upload/<%=filename%>" download="<%=filename%>"><%=filename%></a></td>
            <%--<td><input name="download" type="checkbox" value=<%=filename%>></td>--%>
        </tr>
        <%
            }
            statement.close();
            resultSet.close();
            connect.close();
        %>
        <%--<tr align="center">--%>
            <%--<td colspan="6"><button type="submit" onclick="form2.action='download.jsp';form2.submit()">下载文件</button></td>--%>
        <%--</tr>--%>
    </table>
</form>
    <form method="post" id="form3" name="form3">
        <script language="JavaScript">
            function check2() {
                if(document.form3.old_password.value==""){
                    alert("请输入旧密码");
                    return false;
                }
                else if(document.form3.new_password.value==""){
                    alert("请输入新密码");
                    return false;
                }
                else if(document.form3.old_password.value==document.form3.new_password.value){
                    alert("两次输入的密码不能一样");
                    return false;
                }
                else return true;
            }
        </script>
    <table border="1" cellspacing="0" align="center">
        <tr align="center">
            <script language="JavaScript">
                function submit2from(path){
                    if(check2()){
                        $('form3').action=path;
                        $('form3').submit();
                    }
                }
            </script>
            <%
                String uname=session.getAttribute("username").toString();
            %>
            <td>账号</td>
            <td><%=uname%></td>
            <td>旧密码</td>
            <td><input name="old_password" type="password" size="20"></td>
            <td>新密码</td>
            <td><input name="new_password" type="password" size="20"></td>
        </tr>
        <tr align="center">
            <td colspan="6"><button type="submit" onclick="submit2from('selfinfochange.jsp')">修改密码</button> </td>
        </tr>
    </table>
</form>
</body>
</html>

管理员界面效果如下:
操作员界面

opera.jsp

<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<html>
<head>
    <title>操作员界面</title>
</head>
<body>
<form method="post" id="form4" name="form4" action="download.jsp">
    <table border="1" cellspacing="0" align="center">
        <tr align="center">
            <td>名称</td>
            <td>创建者</td>
            <td>创建时间</td>
            <td>描述</td>
            <td>文件名</td>
        </tr>
        <%
            Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/document","root","123456");
            Statement statement=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            String sql="select * from doc_info";
            ResultSet resultSet=statement.executeQuery(sql);

            while(resultSet.next()) {
                String ID=resultSet.getString("ID");
                String creator=resultSet.getString("creator");
                Timestamp timestamp=resultSet.getTimestamp("timestamp");
                String description=resultSet.getString("description");
                String filename=resultSet.getString("filename");
        %>
        <tr align="center">
            <td ><%=ID%></td>
            <td ><%=creator%></td>
            <td ><%=timestamp%></td>
            <td ><%=description%></td>
            <td ><a href="/DM_war_exploded/upload/<%=filename%>" download="<%=filename%>"><%=filename%></a></td>
            <%--<td><input name="download" type="checkbox" value=<%=filename%>></td>--%>
        </tr>
        <%
            }
            statement.close();
            resultSet.close();
            connect.close();
        %>
        <%--<tr align="center">--%>
        <%--<td colspan="6"><button type="submit" onsubmit="download()">下载文件</button></td>--%>
        <%--</tr>--%>

        <%--<script language="JavaScript">--%>
        <%--function download() {--%>
        <%--window.location.href("\\web\\upload\\");--%>
        <%--}--%>
        <%--</script>--%>
    </table>
</form>
<form id="form8" name="form8" action="upload.jsp" enctype="multipart/form-data" method="post">
    <table border="1" cellspacing="0" align="center">
        <tr align="center">
            <td>上传文件</td>
            <td><input type="file" name="file"></td>
            <td><input type="submit" value="提交">
        </tr>
    </table>
</form>
<form method="post" id="form5" name="form5">
    <script language="JavaScript">
        function check3() {
            if(document.form5.old_password.value==""){
                alert("请输入旧密码");
                return false;
            }
            else if(document.form5.new_password.value==""){
                alert("请输入新密码");
                return false;
            }
            else if(document.form5.old_password.value==document.form5.new_password.value){
                alert("两次输入的密码不能一样");
                return false;
            }
            else return true;
        }
    </script>
    <table border="1" cellspacing="0" align="center">
        <tr align="center">
            <script language="JavaScript">
                function submit3from(path){
                    if(check3()){
                        $('form5').action=path;
                        $('form5').submit();
                    }
                }
            </script>
            <%
                String uname=session.getAttribute("username").toString();
            %>
            <td>账号</td>
            <td><%=uname%></td>
            <td>旧密码</td>
            <td><input name="old_password" type="password" size="20"></td>
            <td>新密码</td>
            <td><input name="new_password" type="password" size="20"></td>
        </tr>
        <tr align="center">
            <td colspan="6"><button type="submit" onclick="submit3from('selfinfochange.jsp')">修改密码</button> </td>
        </tr>
    </table>
</form>
</body>
</html>

操作员界面效果如下:
浏览者界面

browser.jsp

<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<html>
<head>
    <title>浏览者界面</title>
</head>
<body>
<form method="post" id="form6" name="form6" action="" onsubmit="return check()">
    <table border="1" cellspacing="0" align="center">
        <tr align="center">
            <td>名称</td>
            <td>创建者</td>
            <td>创建时间</td>
            <td>描述</td>
            <td>文件名</td>
        </tr>
        <%
            Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/document","root","123456");
            Statement statement=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            String sql="select * from doc_info";
            ResultSet resultSet=statement.executeQuery(sql);

            while(resultSet.next()) {
                String ID=resultSet.getString("ID");
                String creator=resultSet.getString("creator");
                Timestamp timestamp=resultSet.getTimestamp("timestamp");
                String description=resultSet.getString("description");
                String filename=resultSet.getString("filename");
        %>
        <tr align="center">
            <td ><%=ID%></td>
            <td ><%=creator%></td>
            <td ><%=timestamp%></td>
            <td ><%=description%></td>
            <td ><a href="/DM_war_exploded/upload/<%=filename%>" download="<%=filename%>"><%=filename%></a></td>
            <%--<td><input name="download" type="checkbox" value=<%=filename%>></td>--%>
        </tr>
        <%
            }
            statement.close();
            resultSet.close();
            connect.close();
        %>
        <%--<tr align="center">--%>
            <%--<td colspan="6"><button type="submit" onclick="form6.action='download.jsp';form6.submit()">下载文件</button></td>--%>
        <%--</tr>--%>
    </table>
</form>
<form method="post" id="form7" name="form7">
    <script language="JavaScript">
        function check4() {
            if(document.form7.old_password.value==""){
                alert("请输入旧密码");
                return false;
            }
            else if(document.form7.new_password.value==""){
                alert("请输入新密码");
                return false;
            }
            else if(document.form7.old_password.value==document.form7.new_password.value){
                alert("两次输入的密码不能一样");
                return false;
            }
            else return true;
        }
    </script>
    <table border="1" cellspacing="0" align="center">
        <tr align="center">
            <script language="JavaScript">
                function submit4from(path){
                    if(check4()){
                        $('form7').action=path;
                        $('form7').submit();
                    }
                }
            </script>
            <%
                String uname=session.getAttribute("username").toString();
            %>
            <td>账号</td>
            <td><%=uname%></td>
            <td>旧密码</td>
            <td><input name="old_password" type="password" size="20"></td>
            <td>新密码</td>
            <td><input name="new_password" type="password" size="20"></td>
        </tr>
        <tr align="center">
            <td colspan="6"><button type="submit" onclick="submit4from('selfinfochange.jsp')">修改密码</button> </td>
        </tr>
    </table>
</form>
</body>
</html>

浏览者界面效果和管理员去掉用户管理之后的界面效果一样,在此就不过多展示

添加用户操作

add.jsp

<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<html>
<head>
    <title>添加用户</title>
</head>
<body>
<%
    Class.forName("com.mysql.jdbc.Driver");
    Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/document","root","123456");
    Statement statement=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    String sql=null;
    ResultSet resultSet;
    request.setCharacterEncoding("gb2312");
    String uname=request.getParameter("admin_name");
    String upassword=request.getParameter("admin_password");
    String urole=request.getParameter("admin_role");
    sql="select * from user_info where username='"+uname+"'";
    resultSet=statement.executeQuery(sql);
    if(resultSet.next())   {
        out.println("<script language='JavaScript'>alert('用户已存在!')</script>");
        response.setHeader("refresh","0;url=admin.jsp");
    }
    else{
        sql="insert into user_info(username,password,role) values "+"('"+uname+"','"+upassword+"','"+urole+"')";
        if(statement.executeUpdate(sql)<=0)  {
            out.println("<script language='JavaScript'>alert('添加用户失败')</script>");
            response.setHeader("refresh","0;url=admin.jsp");
        }
        else {
            out.println("<script language='JavaScript'>alert('添加用户成功')</script>");
            response.setHeader("refresh","0;url=admin.jsp");
        }
    }
    statement.close();
    resultSet.close();
    connect.close();
%>
</body>
</html>

修改用户操作

update.jsp

<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<html>
<head>
    <title>修改用户</title>
</head>
<body>
  <%
      Class.forName("com.mysql.jdbc.Driver");
      Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/document","root","123456");
      Statement statement=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
      String sql=null;
      ResultSet resultSet;
      String uname=request.getParameter("admin_name");
      String upassword=request.getParameter("admin_password");
      String urole=request.getParameter("admin_role");
      request.setCharacterEncoding("gb2312");
      sql="select * from user_info where username='"+uname+"'";
      resultSet=statement.executeQuery(sql);
      if(!resultSet.next())   {
          out.println("<script language='JavaScript'>alert('用户不存在!')</script>");
          response.setHeader("refresh","0;url=admin.jsp");
      }
      else{
          sql="update user_info set password='"+upassword+"',role='"+urole+"' where username='"+uname+"'";
          if(statement.executeUpdate(sql)<=0)  {
              out.println("<script language='JavaScript'>alert('修改用户失败')</script>");
              response.setHeader("refresh","0;url=admin.jsp");
          }
          else {
              out.println("<script language='JavaScript'>alert('修改用户成功')</script>");
              response.setHeader("refresh","0;url=admin.jsp");
          }
      }
      statement.close();
      resultSet.close();
      connect.close();
  %>
</body>
</html>

删除用户操作

del.jsp

<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<html>
<head>
    <title>删除用户</title>
</head>
<body>
  <%
      Class.forName("com.mysql.jdbc.Driver");
      Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/document","root","123456");
      Statement statement=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
      String sql=null;
      ResultSet resultSet;
      String uname=request.getParameter("admin_name");
      String upassword=request.getParameter("admin_password");
      String urole=request.getParameter("admin_role");
      request.setCharacterEncoding("gb2312");
      sql="select * from user_info where username='"+uname+"'";
      resultSet=statement.executeQuery(sql);
      if(!resultSet.next())   {
          out.println("<script language='JavaScript'>alert('用户不存在!')</script>");
          response.setHeader("refresh","0;url=admin.jsp");
      }
      else{
          sql="delete from user_info where username='"+uname+"'";
          if(statement.executeUpdate(sql)<=0) {
              out.println("<script language='JavaScript'>alert('删除用户失败')</script>");
              response.setHeader("refresh","0;url=admin.jsp");
          }
          else {
              out.println("<script language='JavaScript'>alert('删除用户成功')</script>");
              response.setHeader("refresh","0;url=admin.jsp");
          }
      }
      statement.close();
      resultSet.close();
      connect.close();
  %>
</body>
</html>

上传文件操作

upload.jsp

<%@ page contentType="text/html;charset=GB2312" language="java" %>
<%@ page import="java.io.*,java.util.*,javax.servlet.*,javax.servlet.http.*" %>
<%@ page import="java.rmi.ServerException" %>
<%@ page import="java.sql.*" %>
<html>
<head>
    <title></title>
</head>
<body>
<%
    String ufilename;
    String udescription=request.getParameter("description");
    String uname=session.getAttribute("username").toString();
    String ufile=null;
    //定义上传文件的最大字节
    double MAX_SIZE = 102400 * 102400;
    //创建根路径的保存变量
    String rootPath;
    //声明文件读入类
    DataInputStream in = null;
    FileOutputStream fileOut = null;
    //取得互联网程序的绝对地址
    String realPath = request.getSession().getServletContext().getRealPath("/");
    realPath = realPath.substring(0, realPath.indexOf("\\out"));
//    out.print(realPath);
    //创建文件的保存目录
    rootPath = realPath + "\\web\\upload\\";
    //取得客户端上传的数据类型
    String contentType = request.getContentType();
    try {
        if (contentType.indexOf("multipart/form-data") >= 0) {
            //读入上传数据
            in = new DataInputStream(request.getInputStream());
            int formDataLength = request.getContentLength();
            if (formDataLength > MAX_SIZE) {
                out.print("<script language='JavaScript'>alert('上传文件过大')</script>");
                response.setHeader("refresh","0;url=opera.jsp");
                return;
            }
            //保存上传文件的数据
            byte dataBytes[] = new byte[formDataLength];
            int byteRead = 0;
            int totalBytesRead = 0;
            //上传的数据保存在byte数组里面
            while (totalBytesRead < formDataLength) {
                byteRead = in.read(dataBytes, totalBytesRead, formDataLength);
                totalBytesRead += byteRead;
            }
            //根据byte数组创建字符串
            String file = new String(dataBytes, "GB2312");
            //取得上传数据的文件名
            String saveFile = file.substring(file.indexOf("filename=\"") + 10);
            saveFile = saveFile.substring(0, saveFile.indexOf("\n"));
            saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1, saveFile.indexOf("\""));
            ufile=saveFile;
            int lastIndex = contentType.lastIndexOf("=");
            //取得数据的分隔字符串
            String boundary = contentType.substring(lastIndex + 1, contentType.length());
            //创建保存路径的文件名
            String fileName = rootPath + saveFile;
            int pos;
            pos = file.indexOf("filename = \"");
            pos = file.indexOf("\n", pos) + 1;
            pos = file.indexOf("\n", pos) + 1;
            pos = file.indexOf("\n", pos) + 1;
            int boundaryLocation = file.indexOf(boundary, pos) - 4;
            //取得文件数据的开始的位置
            int startPos = ((file.substring(0, pos)).getBytes()).length;
            int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;
            File checkFile = new File(fileName);
            if (checkFile.exists()) {
                out.print("<script language='JavaScript'>alert('文件已存在')</script>");
                response.setHeader("refresh","0;url=opera.jsp");
                return;
            }
            //检查上传文件的目录是否存在
            File fileDir = new File(rootPath);
            if (!fileDir.exists()) {
                fileDir.mkdirs();
            }
            //创建文件的输出类
            fileOut = new FileOutputStream(fileName);
            //保存文件的数据
            fileOut.write(dataBytes, startPos, (endPos - startPos));
            fileOut.close();
        } else {
            String content = request.getContentType();
            out.print("<script language='JavaScript'>alert('请上传目录mutipart/form-data类型的文件')</script>");
            response.setHeader("refresh","0;url=opera.jsp");
        }
    } catch (Exception ex) {
        throw new ServerException(ex.getMessage());
    }
    Class.forName("com.mysql.jdbc.Driver");
    Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/document","root","123456");
    Statement statement=connect.createStatement();
    String sql="select * from doc_info";
    ResultSet resultSet=statement.executeQuery(sql);
    int i=1;
    while (resultSet.next()) i++;
    ufilename=String.valueOf(i);
    String timestamp=new Timestamp(System.currentTimeMillis()).toString();
    sql="insert into doc_info(Id,creator,timestamp,description,filename) values "+"('"+ufilename+"','"+uname+"','"+timestamp+"','"+udescription+"','"+ufile+"')";
    if(statement.executeUpdate(sql)>0){
        out.print("<script language='JavaScript'>alert('文件上传成功')</script>");
        response.setHeader("refresh","0;url=opera.jsp");
    }
    else{
        out.print("<script language='JavaScript'>alert('文件上传失败')</script>");
        response.setHeader("refresh","0;url=opera.jsp");
    }
%>
</body>
</html>

上传文件效果如下:
下载文件直接放在了各个管理员、操作员和浏览者的界面上,在列表之中单机文件即可实现文件的下载操作

小结

这一次的小型档案管理系统的开发使我对JSP和网页开发有了初步的了解和认识。同时这其中也存在的许多的不足,比如网页不够美观,没有使用到div标签、servlet、javabean和一些框架,在今后的学习过程中需要逐步地进行改进和提高。

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值