到底用editCategory.jsp?id=xx 还是/servlet/CategoryServlet?action=edit&id=xx

chenluozhi 2010-11-18 06:42:18
纯jsp mvc 编程。。。项目用途不大,学生而已,只为练习;现在是三大架构的天下,我纯jsp大伙别笑
做一个博客,搞不清到底用editCategory.jsp?id=xx 还是/servlet/CategoryServlet?action=edit&id=xx
比如我修改分类,我的访问链接是做如editCategory.jsp?id=xx 这样呢,还是做成/servlet/CategoryServlet?action=edit&id=xx

对于前一种,我的思路是在jsp网页里边,new 一个 servlet 出来(晕,在jsp页面new servlet,也可行!),然后调用servlet方法,在javabean封装数据,再在jsp取;如果这样,似乎连web.xml 里边的servlet 映射也可以去掉了,这还算servlet编程么》

对于后一种方法,似乎是常规方法了,似乎比第一种复杂点,数据在jsp servlet javabean中传来传去,头晕了;访问servlet,准备好一切数据跳转到jsp页面。。。问题是,这样连地址栏也不变啊!?
做个博客主页不可能给别人一个/servlet/CategoryServlet这样的链接吧!太不友好了。

我是想问问,比如网站主页index.jsp 里边的数据怎么来的?index.jsp里边要写什么代码?

请高人指点下,实际到底用哪个、它们的区别?
...全文
246 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
magicluo 2010-11-18
  • 打赏
  • 举报
回复
说到底是显示的问题。

你第一种方法显然不可取,建议第二种来进行,MVC就是这样的

至于你说的主页的问题,像我们之前做的网站,首页index.jsp中就一句话:
<jsp:forward page="${ctx}/showIndex.action"></jsp:forward>

直接服务端跳转到showIndex.action ,然后action执行后(也可以是servlet),到实际显示数据的那个jsp视图中。
这里地址栏还是 http://xxxx/inde.jsp (如果index.jsp在welcome file 的list中,则首页就是http://xxxxx)

关于你说到的链接 /servlet/CategoryServlet?action=edit&id=xx 的问题
你可以使用urlRewrite 来进行地址重写 ,比如成这个样子:
/category/edit_xx.htm

写成什么样看你自己的需求咯,也可以用其他重写方案写成类似javaeye的reset风格,比如
/category/edit/xxx

技术成熟了,可以全部生成静态页,更没这些问题了。呵呵
milk713785 2010-11-18
  • 打赏
  • 举报
回复
既然是做练习的话,那么写的东西越贴近实际应用的话越好,所以建议使用第二种方法,多写不了几句代码的,大部分代码工具可以自动生成。

而地址栏上显示的内容可以在web.xml里对servlet的参数进行自定义配置,不一定要显示得那么死板。

如果一定实现跳转后改变地址栏的话,可以用response的redirect后面带参方式来跳转页面。不过建议还是少用,因为尽量不要给用户看到地址栏后面跟参数,这样的话用户就可以随意修改传递的参数了。


一般网站的主页都只有一句话,直接跳到后台,经过后台处理后网站再跳转到真正显示给用户看的主页,无论网站主页是否需要进行后台处理,一般网站建设者都会预留这部分的处理空间,避免以后再来改这个架构。


而至于他们两种发放的区别么,其实都可以实现同样的功能,只是一个代码的结构比较规范而另一个不太规范而以。
现实中一般也是这样的情况,同一个需求可以有很多种方案来实现,但是我们应该综合考虑各个方案的实现速度、功能的扩展性、代码的维护性等等方面,最后再确定一个最佳的方案。

我觉得第一个方案就在代码的维护性和功能的扩展性上比较欠缺。一方面,由于结构混乱,一旦过了一段时间自己也很难看懂到底写了什么;另一方面,如果以后有什么需求和这个做的东西类似的话,把这个代码拿过来可以重用的部分太少。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧