我想在我的系统中做一些登录,比如用户操作, 我知道在servelet中我可以获得所有会话的参数,参数..etc
所以我想编写Servlet
public class UserActionCheck extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException,
IOException {
HttpSession session = request.getSession();
Map map=request.getParameterMap();
Set keSet=map.entrySet();
for(Iterator itr=keSet.iterator();itr.hasNext();){
Map.Entry me=(Map.Entry)itr.next();
Object ok=me.getKey();
Object ov=me.getValue();
String[] value=new String[1];
if(ov instanceof String[]){
value=(String[])ov;
}else{
value[0]=ov.toString();
}
for(int k=0;k<value.length;k++){
System.out.println(ok+"="+value[k]);
}
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,
IOException {
//HttpSession session = request.getSession();
}
}
然后我可以在tomcat控制台中看到参数输出..但是我得到了空白页..
似乎页面在doGet
方法之后停止..
那我该如何继续呢?
使用RequestDispatcher
?
如何处理doPost
?
答案 0 :(得分:1)
出于您的目的,最好的方法是使用Filter
。
示例:
@WebFilter(filterName = "monitoringFilter", urlPatterns = { "/*" })
public class MonitoringFilter implements Filter
{
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
{
// Right here do your stuff pretty much like in a servlet
request // ... get information you need
// Process request as normal
chain.doFilter(request,response);
}
@Override
public void init(FilterConfig config) throws ServletException
{
}
@Override
public void destroy()
{
}
}
更多信息:
答案 1 :(得分:0)
您应该使用 log4j 和 FileAppender 在您的应用中实施日志记录。 这样的东西:::
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
class A{
static Log log = LogFactory.getLog(A.class);
void methodA(){
try{
log.info("I am inside A");
} catch(Exception e) {
log.error("error" , e);
}
}
}
答案 2 :(得分:0)
你问这个问题
那我该如何继续呢?
doGet方法的想法是它应该写入响应对象,应该在浏览器中写入的html(或数据);
例如你可以写
PrintWriter out = response.getWriter();
for(int k=0;k<value.length;k++){
out.println(ok+"="+value[k]);
}
查看http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial-First-Servlets.html
doPost也可以被类似地处理,但通常用于POST数据 - 在提交HTML表单时调用它。