JSPで実現するシンプルな人事管理システム
2022-01-16 14:10:58
この例では、参考までにJSPで実装された簡単な人事管理システムの具体的なコードを以下のように共有します。
このシステムは、jspの9つの組み込みオブジェクトと4つのスコープの知識が含まれています実装するために、マップコレクションを使用して、ユーザーのログイン、社員情報の表示、社員情報の変更機能を実現するために、データベースをシミュレートするために使用します。
JSPの9つの組み込みオブジェクト。Application, Config, Exception, Out, PageContent, Page, Request, Response, Sesstion。
JSPの4大スコープ アプリケーションセッションページの要求
プロジェクト体制
画像
Emp.java 従業員情報
package org.wang.model;
public class Emp {
private String account;
private String name;
private String password;
private String email;
public Emp(String account, String name, String password, String email) {
this.account = account;
this.name = name;
this.password = password;
this.email = email;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
DBUtil.java は、社員情報を格納するためのコレクションでデータベースをシミュレートします。
package org.wang.db;
import org.wang.model.Emp;
import java.util.HashMap;
import java.util.Map;
// use the collection simulation to manipulate the database
public class DBUtil{
public static Map<String, Emp> map = new HashMap<String, Emp>();
// use static code block to complete the initialization of the values in the map operation
static {
map.put("001",new Emp("001","zhangsan","11111","[email protected]"));
map.put("002",new Emp("002","lisi","121212","[email protected]"));
map.put("003",new Emp("003","wangwu","131313","[email protected]"));
map.put("004",new Emp("004","zhaoliu","141414","[email protected]"));
}
// determine whether the user name and password is correct
public static boolean selectEmpByAccountAndPassword(Emp emp){
// user input information into the emp object, determine whether the value in the emp object and the value of the map corresponds to
boolean flag = false;
//Iterate over the keys in the current map collection
for (String key : map.keySet()){
Emp e = map.get(key);
// determine if the value passed in by the user is equal to the value in the map collection
if(emp.getAccount().equals(e.getAccount()) && emp.getPassword().equals(e.getPassword())){
flag = true;
break;
}
}
return flag;
}
}
index.jspのログイン画面
{{コード
index-control.jsp ログイン画面の制御画面。ユーザーのログイン情報が、マップコレクションの社員情報と一致するかどうかを処理するために使用されます。
{{コード {未定義
error.jsp
{{コード {未定義
update.jsp 社員情報ページの修正
<%-- Created by IntelliJ IDEA. User: wangy Date: 2018/11 Time: 8:19 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Personnel Management System Login</title> </head> <body> <h3 align="center">Personnel Management System Login Page</h3> <hr> <%--action represents the server-side handler--%> <form action="index-control.jsp"> <table align="center"> <tr> <td> Account Number. </td> <td> <input type="text" name="account"> </td> </tr> <tr> <td> Password. </td> <td> <input type="password" name="password"> </td> </tr> <tr> <td> <input type="submit" value="login"> </td> </tr> </table> </form> </body> </html>
<%-- Created by IntelliJ IDEA. User: wangy Date: 2018/11 Time: 9:09 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="error.jsp" %> <%@ page import="org.wang.db.*,org.wang.model.*" %> <%@ page import="java.util.Map" %> <html> <head> <title>Personnel Management System</title> </head> <body> <%--Get the account number and password entered by the user, and call the method in DBUtil to determine if the information exists request:Get request information request.getParameter(String name): you can get the value of the control by the name property of a control out.println(); output the information to the page --%> <% // Get the account and password entered by the user String account = request.getParameter("account"); String password = request.getParameter("password"); // encapsulate the user input account and password into an Emp object Emp emp = new Emp(account,null,password,null); boolean flag = DBUtil.selectEmpByAccountAndPassword(emp); //Get the map collection Map<String,Emp> map = DBUtil.map; if(flag==true){ //set session session.setAttribute("account",account); //use application to get system access Object o = application.getAttribute("count"); //judge that if the current user is the first to log in, the value in application is null, then set the access amount to 1 if(o == null){ application.setAttribute("count",1); }else{ //count was originally a String, strong conversion to int type, and do +1 operation int count = Integer.parseInt(o.toString()); application.setAttribute("count",count+1); } %> <%--Get the number of visits and display them on the page - %> <h3 align="right">Current visits: <%=application.getAttribute("count")%></h3> <%--Get the value in session and display it on the page --%> <h3 align="center">Welcome to the personnel management system</h3> <h3 align="right">Login Account:<%=session.getAttribute("account")%></h3> <hr> <table align="center" border="1" width="500px"> <tr> <td> Account Number </td> <td> Employee Name </td> <td> Email </td> <td> Modify </td> </tr> <% - Use a for loop to automatically generate cell rows based on the data in the simulated database to display the employee information table - %> <% for (String key : map.keySet()){ Emp e = map.get(key); %> <tr> <td> <%=e.getAccount()%> </td> <td> <%=e.getName()%> </td> <td> <%=e.getEmail()%> </td> <td> <%--Click on modify to jump to update.jsp page, use URL to pass parameters, address bar will show data information--%> <%--Adjacent two jsp pages pass data by way of URL parameters--%> <% - syntax rules: page?key1=value1 & key2=value2 --%> <a href="update.jsp?account=<%=e.getAccount()%>&name=<%=e.getName()%>&email=<%=e.getEmail()%>& quot; rel="external nofollow" >modify</a> </td> </tr> <% } %> </table> <% }else{ throw new Exception("Login failed"); } %> </body> </html>
<%-- Created by IntelliJ IDEA. User: wangy Date: 2018/11 Time: 16:01 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %> <html> <head> <title>Title</title> </head> <body> <%=exception.getMessage()%> </body> </html>
実行効果
ログイン画面
画像
ログインに成功したら、社員情報表示画面に入る
画像
社員情報の変更(ここではデータ表示バックを使用しています)
画像
以上、本記事の全内容をご紹介しました。皆様の学習の一助となり、BinaryDevelopをより支持していただけると幸いです。
{コード
関連
-
jsp request.getParameter()とrequest.getAttribute()メソッドの違いについて解説しています。
-
JSPの静的インポートと動的インポートの使い分け詳細説明
-
JSPデータ連動プロセス解析
-
Layuiを使用したSSMフレームワークJSPによるレイヤーパップアップ効果の実現
-
JSPはXssの脆弱性を防ぐためにフィルタを使用します。
-
JSP組み込みオブジェクト要求共通使用法詳細
-
JSPの式言語の基本を説明する
-
蛇を捕まえるゲームを実装するためのjspのWebページ
-
サーバーへのファイルアップロード機能を実現するJSP+サーブレット
-
ファイルアップロード機能のJSP実装
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
jsp session.setAttribute() と session.getAttribute() の使用例について説明します。
-
jsp レスポンスオブジェクトのページリダイレクト、時刻の動的表示
-
JSP統計のウェブサイトの訪問者を使用する方法を教える
-
ページメッセージのポップアップボックスの右下を実現するJSP
-
数字当てゲームの jsp+servlet 実装
-
JavaScript-statementを解説した記事
-
jsp cookie+sessionで簡単な自動ログイン。
-
Javawebプロジェクト実行エラーHTTPステータス404の解決策
-
jsp+servletによるファイルアップロード機能の簡易実装(saveディレクトリの改良)
-
JavaScript-Objectsを1つの記事で紹介