日期:2014-05-17  浏览次数:20833 次

新手学习Servlet的疑问
上课的时候,老师要求我们做一个简单实验,是关于Servlet的应用的


大致的要求是这样的


编写一个简单的登录界面LoginServlet(username、password以及一个按钮)

要求用户登录时进行用户验证(username.equal这个方法)
如果验证正确 就调用RequestDispatcher接口的forward()方法,向用户显示欢迎信息。
如果错误,就如果错误,则调用RequestDispatcher接口的include()方法,将请求转发给ErrLoginServlet


我在做的时候,遇到了几个很疑惑的问题:
1、怎么在不同的Servlet之间,读取username,因为LogServlet里需要读取一下username,后面欢迎信息也要读取
2、我在网上找了一些参考例子,上面用到了SendRedirect这个方法,这个方法与RequestDispatcher方法有什么区别吗?
3、Include方法与forward方法有什么用?
4、在一个项目中,新建多个Servlet时,对应XML里的配置信息要怎么写


希望大神告之,最好能写一个具体的代码例子,我想看一下是怎么运行的.。。


小弟是菜鸟。。分不是很多。。。这已经是我当前所有的分数了

谢谢大神们
------解决方案--------------------
LoginServlet:

package com.test.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {

private static final long serialVersionUID = 1L;


@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletExceptionIOException {
this.process(req, resp);
}


@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.process(req, resp);
}

protected void process(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
//假设username=admin password="123"的时候才可以登录
if(username!=null && username.equals("admin") && password!=null && password.equals("123")){
req.getSession().setAttribute("username", username);//把username放到session里面
req.getRequestDispatcher("/welcome.jsp").forward(req, resp);
}else{
req.getRequestDispatcher("/error.jsp").include(req, resp);
}
}
}


index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
   <form action="login" method="post">
   username:<input type="text" name="username"><br/>
   password:<input type="password" name="password"><br/>
   <input type="submit" value="commit">
   </form>
  </body>
</html>


welcome.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC