10月17日Servlet培训日记
2006-10-21 13:31 java ee spring 阅读(178) 评论(0) 编辑 收藏 举报首先回答了王涛发现的一个问题:在通过Servlet实现动态文件下载时,对于中文的文件名称,浏览器显示为乱码。权威的解决方案,对于这样的问题,我需求正解的方法和步骤:先搜索RFC Content-Dispotion,找到RFC2183,然后搜索encode,找到RFC2184,最后从RFC2184中得到了权威解释。
一个Servlet无法通过Servlet API来知道自己的访问映射路径,要自己编程来实现,通过分析Struts的initServlet方法帮助大家复习了一下digester。
讲解request.getPathInfo的作用时,引出了下列问题:
一个Servlet处理所有的请求,该怎么设计?可以用下面的两种类方式:
(1)根据参数调用一个Servlet类中的相应方法
/ActionServlet?action=del
/ActionServlet?action=add
(2)根据pathInfo调用一个相应的方法,更多情况是调用一个相应的类,这也是struts的映射原理
/ActionServlet/*
/ActionServlet/del
/ActionServlet/add
通过分析下面的源代码,来具体讲解request.getPathInfo的应用。
ActionSevlet.doGet->ActionSevlet.process->RequestProcessor.process
从而引出了Struts的运行原理。
四个行为对应同一个Action类的四个方法:粗粒度
四个行为对应四个Action类的某个固定名称的方法:细粒度
粗粒度和细粒度的比较:就象家中的钱分开存储与集中存储的区别
一个Servlet跳转到jsp页面,jsp页面中的相对路径是相对于jsp,还是Servlet?
myeclipse生成的jsp页面中的<base>标签的作用。
通过检查schema强行用户使用https协议来访问某个Servlet资源
setContentType("text/html;charset=gb2312")的问题
if(request.getScheme().equals("http"))
{
response.sendRedirect("https" +"://" + request.getServerName() + ":8443" + request.getRequestURI() + "?" + request.getQueryString());
return;
}