在Eclipse中新建Dynamic Web Project,并将工程名设为:payroll。在此工程中除
应导入相应采用Servlet技术需要的相关文件以外,应设计如下源码文件及配置相关xml文件来
完成程序功能。
| 程序清单 | 功能 | 源码所在位置 | 文件类型 |
| input.jsp | 用于输入姓名、选择职称、输入课时等 信息后提交。 | 当前站点jsp 文件夹 中 | |
| show.jsp | 显示计算后的工资 | 当前站点jsp 文件夹 中 | |
| Cal.java | 用于获取input.jsp 页面提交的数据、经过计算后根据计算结果进行 处理,当计算出有效工资数据时,请求 转发show.jsp 页面;当无效时, 发送响应页面 | 当前项目 servlet 包 中 | |
| Employee.java、FulltimeTeacher.java | 计算工资的实际业务逻辑 | 当前项目entitylogic包 中 | |
| web.xml | 配置文件 |

案例代码:
input.jsp和show.jsp均在文件夹jsp中。
input.jsp:
<body>
<%=this.getServletContext().getContextPath() %>
<%String url=this.getServletContext().getContextPath()+"/CalAssociateProWage"; %>
<form method=post action =<%=url %>>
<div style="text-align:center ">本院全职教师工资计算</div>
请输入:<br>
姓名: <input name ="employeeName" type ="text" ><br>
职称:<input name ="employeeTitle" type ="radio" value="副教授" checked ="checked">
副教授<input name ="employeeTitle" type ="radio" value="教授">教授<br>
本月超额课时为:<input name ="employeeExtraClasshour" type ="text"><br>
<input name ="CalculateWage" type="submit" value = "计算">
<input name ="reset" type="reset" value = "重填">
<br></br>
</form>
</body>
show.jsp:
<body>
<%
String name = request.getParameter("employeeName");
float wage = Float.parseFloat(request.getParameter("wage"));
%>
以下是您提交的信息,请确认:
<br>
<%=name%><br> 本月工资为:
<%=wage%>
</body>
servlet层:
Cal.java:
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
try {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset= utf-8");
String name = request.getParameter("employeeName");
String title = request.getParameter("employeeTitle");
Float extraClasshour = Float.parseFloat(request
.getParameter("employeeExtraClasshour"));
FulltimeTeacher pt2 = new FulltimeTeacher(name, title);
pt2.setExtraclasshour(extraClasshour);
pt2.calculateWage();
Float wage = pt2.getWage();
ServletContext context = getServletContext();
RequestDispatcher rd = context
.getRequestDispatcher("/jsp/show.jsp?wage=" + wage);
rd.forward(request, response);
} catch (Exception ex) {
PrintWriter out = response.getWriter();
out.println("<html><head><title>");
out.println("返回重填页面");
out.println("</title></head><body>");
out.println("出错了");
out.println(ex.getMessage());
String url = this.getServletContext().getContextPath()+"/jsp/input.jsp";
out.println("<form action="+url+">");
out.println("<input type=submit value=返回重填>");
out.println("</form>");
out.println("</body></html>");
out.close();
}
}
web.xml:
<servlet>
<description></description>
<display-name>Cal</display-name>
<servlet-name>Cal</servlet-name>
<servlet-class>servlet.Cal</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Cal</servlet-name>
<url-pattern>/Cal</url-pattern>
</servlet-mapping>
老师的源码:
注意,项目设置为utf-8中文编码集,否则导入项目代码会显示乱码。
在项目节点“payroll”上点击鼠标右键,出现Properties设置对话框,注意如图设置为utf-8.


