建立一个 Derby 日历,第 2 部分: 嵌入选项(下)
2010-04-19 00:00:00 来源:WEB开发网这里没有多少神秘的地方。仅仅通过向页面输出 HTML 创建了一个表单。表单按照 web.xml 文件中的定义使用 /login 模式调用当前的 servlet。如果编译该类,并将其放到 Tomcat 在 webapps 目录中为这个日历应用程序创建的类目录中,就可以用 URL http://www.yourserverhere.com/calendar/login 调用它。
可能需要重新启动 Tomcat 才能看到这个 servlet。无论如何,都会在浏览器中看到类似 图 7 的结果。
图 7. 登录页面
查看原图(大图)
验证登录
现在准备要访问数据库。为了测试用户输入的用户名和口令,应用程序尝试连接到数据库。如果成功,就会知道输入的用户名/口令对是有效的。否则,就知道出现了问题(请参阅 清单 21)。
清单 21. 验证用户信息
...
public final class Login extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
...
}
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
String username = request.getParameter("username");
String password = request.getParameter("password");
String resultString = null;
Connection conn = null;
try {
conn = CalendarConnection.getConnection(username, password);
conn.close();
Cookie userCookie = new Cookie("username", username);
response.addCookie(userCookie);
Cookie passwordCookie = new Cookie("password", password);
response.addCookie(passwordCookie);
resultString = "Login verified. Proceed to the <a href='calendar'>calendar</a>.";
} catch (Exception e){
resultString = "Could not connect to database: "+e.getMessage();
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>"+resultString+
"</body></html>");
}
}
更多精彩
赞助商链接