网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 网络学院 >> 程序设计 >> Java编程 >> 文章正文
  Jsp + servlet +javabean 实现mvc的最简单的新闻发布系统:            【字体:
Jsp + servlet +javabean 实现mvc的最简单的新闻发布系统:
作者:佚名    文章来源:不详    点击数:    更新时间:2007-9-2    
正在装载数据……
 
Jsp + servlet +javabean 实现mvc的最简单的新闻发布系统:
所有类:
总结;
一;所有的servlet在web.xml文件中
<servlet-mapping>
    <servlet-name>UpdateServlet</servlet-name>
    <url-pattern>/UpdateServlet</url-pattern>
 </servlet-mapping>
在aciton中都写/项目名称/servlet名称
这样就不会出现servlet找不到了 否则有时候就会出现找不到了
二:.在跳转的时候如果要设置属性 一定要在跳转之前,否则在跳转之后的servlet或页面得到属性值是空的.
三:.在eclipse中显示行号,有助于找错误,在页面中会指到第几行错误
查了一下几种开发工具显示行号的方法;
1、UltraEdit:View => Display Line Numbers 选取它即可;
 
2、JBuilder:Tools => Preferences => Editor => 右边的Gutter => 把下面的Show line numbers 打上勾确定即可;
 
3、Eclipse:
  3.0 Window => Preferences => Workbench => Editors => Text Editor => 右边Show line numbers 打上勾确定即可;
3.1 Window => Preferences => General => Editors => Text Editors => 右边Show line numbers 打上勾确定即可;
或者是ctrl+F10打开透视图 ,然后选上Show line numbers
 
四:将index登陆页面与其他页面分离开,其他页面都放在main文件下,想进入到main文件下的页面都要登陆,进行验证.
public class SecuriiyFilter implements Filter类进行过滤
具体的dofilter方法;
public void doFilter(ServletRequest request, ServletResponse response,
                     FilterChain chain) throws IOException, ServletException
 {
                     HttpServletRequest req = (HttpServletRequest)request;
                     HttpServletResponse rsp = (HttpServletResponse)response;
                     if(req.getSession().getAttribute("user")==null)
                     {
                            /**
                             * 过滤防止没有登陆就进入list页面
                             */
                            rsp.sendRedirect(req.getContextPath()+"/index.jsp");
                     }
                     else{
                            HttpSession session = req.getSession();
                            System.out.println("用户合法:"+session.getAttribute("user").toString());
                     }
                     chain.doFilter(request, response);
      
       }
五:在servlet中的跳转
request.setAttribute("databean", databean);
request.getRequestDispatcher("main/update.jsp").forward(request, response);
注意;这里的url: main/update.jsp
注意jsp中相对路径和绝对路径
:mvc的实现:
View:
index.jsp
list.jsp
inser.jsp
update.jsp
detail.jsp
error.jsp
model:
Bean
正常登陆:
Index.jsp--àloginSerlvet.java-àLoginVeriryBean.javaàlist.jsp(每个页显示的记录)
                                                              
                                   Insert.jsp
List.jsp--à                          FindByIdServlet.java-(control)àNewsLogicBean.java-àupdate.jsp
                                          DeleteServlet.java
 
七:分页算法的简单实现.(对结果集的遍历)
public List findAll() {
              List list = new ArrayList();//每个页中所有的记录全都放在list中
              Connection con = DataSource.getConnection();
              try {
                     Statement stmt = con.createStatement(
                                   ResultSet.TYPE_SCROLL_INSENSITIVE,
                                   ResultSet.CONCUR_READ_ONLY);
                     ResultSet rs = stmt
                                   .executeQuery("select * from news order by newsdate desc");
                     rs.last();
                     this.allrows = rs.getRow();
                     /**
                      * 计算页数
                      */
                     /*
                      * ( 如果是第一页 指针就移到最前面 否则就移到上一页的最末尾,在取出五行数据
                      */
                     if (this.curpage == 1) {
                            rs.beforeFirst();
                     } else {
                            rs.absolute((this.curpage - 1) * this.pagerow);
                     }
                     if (this.allrows % this.pagerow == 0) {
                            this.allpages = this.allrows / this.pagerow;
                     } else {
                            this.allpages = this.allrows / this.pagerow + 1;
                     }
                     /**
                      * 遍历所有结果集
                      */
                     int i = 0;
                     while (rs.next() && i < this.pagerow) {
                            NewsDataBean bean = new NewsDataBean();
                            bean.setNewsid(rs.getString(1));
                            bean.setNewtitle(rs.getString(2));
                            bean.setNewscontent(rs.getString(3));
                            bean.setNewsdate(rs.getString(4));
                            bean.setNewscount(rs.getString(5));
                            list.add(bean);
                            i++;
                     }
              } catch (SQLException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
              }
 
              return list;
       }
在前台list.jsp中的调用;
           <%
                     /*如果是刚刚达到此页面就不用执行这句话了*/
                     String cur_page = request.getParameter("curPage");
                     if (cur_page != null) {
                         /*如果不是刚刚到达则设置当前页*/
                         news.setCurpage(Integer.parseInt(cur_page));
 
                     }
                     List list = news.findAll();
                     int allrows = news.getAllrows();
                     int allpages = news.getAllpages();
                     int curpage = news.getCurpage();
                      /*这句话一定要在在得到当前页以后才执行才能正确列出本页的数目及其信息*/
 
                     int pagerow = news.getPagerow();
                     for (int i = 0; i < list.size(); i++) {
                         NewsDataBean bean = (NewsDataBean) list.get(i);
                  %>
                  <tr>
                     <td>
                         <input type="radio" name="newsid" value="<%=bean.getNewsid()%>">
                         <%=(curpage - 1) * pagerow + i + 1%>
                     </td>
                     <td>
                         <a href="main/detail.jsp?newsid=<%=bean.getNewsid()%>"><%=bean.getNewtitle()%>
                         </a>
                     </td>
                     <td>
                         <%=bean.getNewsdate()%>
                     </td>
                     <td>
                         <%=bean.getNewscount()%>
                     </td>
                  </tr>
                  <%
                  }
                  %>
八:注意request.getParameter()与request.getArribute();
九:网页:
Index,jsp
 
List.,jsp  


本文来源:http://blog.csdn.net/tanggoodboy/archive/2007/07/16/1694195.aspx
站内文章搜索 高级搜索
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
     用java实现web服务器
     用java快速开发linux gu…
     正则表达式分解siemens交…
     [portal参考手册]目录
     jsp中调用oracle存储过程…
  • page、request、session、ap…

  • JSP中JavaBean的生命周期

  • JSF 的性能远不及 JSP 或 St…

  • JSP学习经验总结

  • Struts2学习:在struts2中集…

  • Sevrlet 中防止中文乱码策略

  • Java的网络编程(TCP/IP)

  • 保留weblogic 中jsp编译后生…

  • 浅析Spring框架下PropertyPl…

  • (JSP)在文本域中显示超链接n…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    网络学院©2007 www.23book.net
    为您提供web编程,vb编程,vc编程,服务器架设管理,数据库设计等方面的知识 站长:David