【发布时间】:2014-08-02 11:16:37
【问题描述】:
我正在使用 mvc 概念,因为我有一个带有一些私有字段和 setter 和 getter 方法的类,一个登录类一个操作类是 EmployeeBean,因为所有功能都在那里登录类在我到达另一个时正常工作EmployeeDetail.jsp 页面,然后当我通过普通 url 方式移动到 DailyWork.jsp 时 我可以检索会话变量,并且我保留了一个 empID 变量,即使我没有维护会话,它仍在打印,但是当我移动到 DailyWorkUpdate servlet 并尝试以给定方式接收会话变量时
String z = emp.getName();
System.out.println("....name is " +z);
System.out.println("....n is " +n);
emp.setEmpId(emp.getEmpId());
n 是整数,表示它是 0,z 是字符串,表示 null 请帮我解决这个问题
这里是完整的代码...
public class Employee {
private int empId;
private String Name;
private String phone;
private String email;
private float salary;
private String designation;
private String password;
private String access_type;
private boolean valid;
private String field1;
private String field2;
private String field3;
public String getAccess_type() {
return access_type;
}
public void setAccess_type(String access_type) {
this.access_type = access_type;
}
public boolean isValid() {
return valid;
}
public String getField1() {
return field1;
}
public void setField1(String field1) {
this.field1 = field1;
}
public String getField2() {
return field2;
}
public void setField2(String field2) {
this.field2 = field2;
}
public String getField3() {
return field3;
}
public void setField3(String field3) {
this.field3 = field3;
}
public void setValid(boolean valid) {
this.valid = valid;
}
public int getEmpId() {
return empId;
}
public void setEmpId(int empId) {
this.empId = empId;
}
public String getName() {
return Name;
}
public void setName(String Name) {
this.Name = Name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public float getSalary() {
return salary;
}
public void setSalary(float salary) {
this.salary = salary;
}
public String getDesignation() {
return designation;
}
public void setDesignation(String designation) {
this.designation = designation;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
EmployeeBean 类
public class EmployeeBean {
public Employee login(int id, String password) {
Connection con = null;
Employee emp = null;
Statement stmt = null;
try {
con = ConnectionManager.getConnection();
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM emp WHERE empId
='"+id+"' and password ='"+password+"'");
boolean more = rs.next();
if (!more) {
System.out.println("Sorry, you are not a registered user! Please sign up first");
emp.setValid(false);
}
else if(more)
{
emp = new Employee();
emp.setEmpId(rs.getInt("empId"));
emp.setName(rs.getString("empName"));
emp.setPhone(rs.getString("phone"));
emp.setEmail(rs.getString("email"));
emp.setSalary(rs.getFloat("salary"));
emp.setDesignation(rs.getString("desig"));
emp.setPassword(rs.getString("password"));
emp.setAccess_type(rs.getString("employee_type"));
String Name = rs.getString("empId");
System.out.println("id is :" +Name);
emp.setValid(true);
}
} catch (SQLException ex) {
} finally {
try {
if (stmt != null) {
stmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
Logger.getLogger(EmployeeBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
return emp;
}
登录.Java
@WebServlet(name = "Login", urlPatterns = {"/Login"})
public class Login extends HttpServlet {
protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(true);
Employee emp = new Employee();
int id = Integer.parseInt(request.getParameter("empId"));
String password = request.getParameter("password");
EmployeeBean eb = new EmployeeBean();
emp = eb.login(id,password);
if(emp.isValid())
{
session.setAttribute("emp",emp);
response.sendRedirect("EmployeeDetail.jsp");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}
EmployeeDetail.jsp
<%@page import="com.info.EmployeeBean"%>
<%@page import="com.info.Employee"%>
<%@page import="java.util.List"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="style.css" rel="stylesheet" type="text/css"/>
<title>Employee Update Page</title>
</head>
<body>
<ul>
<li class='has-sub'>
<a href="./DailyWork.jsp"><span>Update Your Work</span></a></li>
<li class='has-sub'>
<a href="./WorkDetail"><span>View Your Work Details</span></a></li>
<li class='has-sub'>
<a href="./ExcelFileGen.jsp"><span>Generetae Excel Sheet</span></a></li>
</ul>
<table align=center cellspacing=1 cellpadding=3>
<p>Emp Id: ${info.empId}</p>
<p> name is :${info.name}</p>
<p>password is: ${info.password}</p>
<p>designation: ${info.designation}</p>
<p>email : ${info.email}</p>
<p>salary: ${info.salary}</p>
</table>
</body>
</html>
登录.jsp
<%@page import="com.info.EmployeeBean"%>
<%@page import="com.info.Employee"%>
<%@page import="java.util.List"%>
<html>
<form name="form" action="Login" method="post">
<input type="text" name="empId" /><br>
<input type="password" name ="password" /><br>
<input type="submit" name="login" value="login" >
</form>
</html>
DailyWorkUpdate.jsp
<%@page import="com.info.EmployeeBean"%>
<%@page import="com.info.Employee"%>
<%@page import="java.util.List"%>
<html>
<head>
</head>
<body>
<%
Employee emp = (Employee)session.getAttribute("emp");
session.setAttribute("emp",emp);
%>
<ul>
<li class='has-sub'>
<a href="./DailyWork.jsp"><span>Update Your Work</span></a>
</li>
<li class='has-sub'>
<a href="./WorkDetail"><span>View Your Work Details</span></a>
</li>
<li class='has-sub'>
<a href="./ExcelFileGen.jsp"><span>Generetae Excel Sheet</span></a>
</li>
</ul>
<table width="780" align=center cellspacing=0 border="4" cellpadding=0>
<tr>
<td>
<fieldset id="fieldhead">
<legend>Update your DailyWork</legend>
<BR>
<table align=center cellspacing=1 cellpadding=3>
<form name ="form" method= get action="DailyWorkUpdate">
<center>
<tr>
<Td>Support HRS</td>
<TD><input name="field1"></td>
</tr>
<tr>
<td> emp id</td>
<td>${emp.empId}</td>
</tr>
<tr>
<Td>Leave HRS</td>
<TD><input name="field2" ></td>
</tr>
<tr>
<Td>Project name</td>
<TD><input name="field3"></td>
</tr>
<tr><td><input type="submit" value="DailyWorkUpdate" />
<button type=reset accesskey="R"><u>R</u>efresh</button></td></tr>
</center>
</table>
<BR>
</fieldset>
</td>
</tr>
</table>
</body>
</html>
@WebServlet(name = "DailyWorkUpdate", urlPatterns = {"/DailyWorkUpdate"})
public class DailyWorkUpdate extends HttpServlet
{
protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(true);
Employee emp = (Employee)session.getAttribute("emp");
session.setAttribute("emp",emp);
java.sql.Date date = new java.sql.Date(new java.util.Date().getTime());
emp = new Employee();
int n = emp.getEmpId();
String z = emp.getName();
System.out.println("....name is " +z);// it is showing null
System.out.println("....n is " +n);// it is showing 0 why i dont know how to get this
emp.setEmpId(emp.getEmpId());
emp.setField1(request.getParameter("field1"));
emp.setField2(request.getParameter("field2"));
emp.setField3(request.getParameter("field3"));
emp.setDate(date);
EmployeeBean eb = new EmployeeBean();
eb.addWorkDetail(emp);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}
【问题讨论】:
标签: jsp servlets model-view-controller javabeans