注册 登录
编程论坛 J2EE论坛

Servlet

lovemm 发布于 2009-10-29 18:36, 866 次点击
            response.setContentType("text/html;charset=utf-8");
            PrintWriter out = response.getWriter();
            HttpSession session = request.getSession();

我想问这些句子写在哪比较好,我想写在doPost方法中,这样可以减少每次在调用doPost方法后调用自己写的方法时要多次书写,请问将这些代码写在doPost方法中与我平时写在自己定义的方法有什么不同,哪个比较好????!!!!!如有疑问可参考下面例子



例子1:doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {{
  response.setContentType("text/html;charset=utf-8");
            PrintWriter out = response.getWriter();
            HttpSession session = request.getSession();


if(){
up(request,response);
}else {
del(request,response);
}
            out.flush();
            out.close();

}

例子2:doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {{
if(){
up(request,response);
}else {
del(request,response);
}
}

public void up(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
  response.setContentType("text/html;charset=utf-8");
            PrintWriter out = response.getWriter();
            HttpSession session = request.getSession();
            
//方法体,省略
            out.flush();
            out.close();



[ 本帖最后由 lovemm 于 2009-10-29 19:27 编辑 ]
7 回复
#2
流星雨2009-10-29 22:07
直接写过滤器,在web.xml 里配置一下就行,
如下
public class Guolv implements Filter {
 
    public void destroy() {
        // TODO Auto-generated method stub
 
    }
 
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain arg2) throws IOException, ServletException {
         request.setCharacterEncoding("gbk");
         response.setCharacterEncoding("gbk");
         arg2.doFilter(request,response); //你的代码应该是改字体的功能,让中文不是乱码,我们一般都这样写

    }
 
    public void init(FilterConfig arg0) throws ServletException {
        // TODO Auto-generated method stub
 
    }

WEB.XML里
  <filter>
<filter-name>Guolv</filter-name>
<filter-class>org.xu.guolv.Guolv</filter-class>
</filter>
 <filter-mapping>
 <filter-name>Guolv</filter-name>
 <url-pattern>/*</url-pattern>
 </filter-mapping>
#3
lovemm2009-10-30 10:25
回复 2楼 流星雨
我看了你的发表,我觉得你给我的例子是我例子2的样式,你红色字写的是没错,我的是为了防止乱码,我平时都是用例子2的样式写的,而我现在想简单就希望用我例子1的写法,不知道这到这两种写法的效率和其他之类的有没有区别,我就希望知道这两者之间的区别,他们之间的优与缺
#4
lampeter1232009-10-30 13:26
非常赞成二楼,应写在过滤器里
#5
baifenghan2009-11-01 13:02
回复 楼主 lovemm
恕本人愚见,其实在Java EE开发中,很多做法是建议性的,主要是为了提高代码的重用,可维护性,从效率角度来说,分的层越多,势必是越低,这是一个效率和维护的博弈,所以有时候不要总说“有这个必要吗?”,这里没有非怎么样不可的问题,只有建议性的问题,这样做会更好,注意这里的好主要体现在相同的性能下,我前面说的,这是重用,可维护性的体现,自己学习工作的体会,有错误,希望交流。
#6
lovemm2009-11-05 20:05
我知是想問我的防亂碼的代碼可不可以寫doPost裏而不在寫在調用doPost後的方法之後在用到我翻亂碼代碼。


如過我的防亂碼代碼可以寫在doPost方法裏,而沒有任何的不妥的話我就不用有多少方法就寫多少次放亂碼的代碼了,僅此而已,為什麼你們都說到過濾器那啦,不懂,是我問題問得太奇怪,還是我太笨
#7
slw60446322009-11-11 20:40
回复 2楼 流星雨
我按你的写了下,怎么输出还是乱码啊!!
#8
aina2010-02-26 22:00
用个过滤器就好了,ok
1