知识大全 实战JSP进阶编程之一

Posted

篇首语:守株待兔只能得一餐饱,主动出击方能丰衣足食。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 实战JSP进阶编程之一相关的知识,希望对你有一定的参考价值。

实战JSP进阶编程之一  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  不少JSP初学者在学会简单的jsp编程后 往往停留在用jsp里面的sql语句调一个javabean进行数据库连接阶段 止步不前了

  这个简单的教程希望能够有助于初学者学会用oop思想进行jsp编程

  场景 一个简单的新闻系统 有 - 个数据表构成 数据库系统用的是Mysql 当然用其它的也类似 先看第一个数据表 也是主要的数据表:news

  create table news (newsid int not null userid int kwid int // 关键词外键 title varchar( ) content text hits int cdate varchar ( ) mdate varchar ( ) primary key(newsid));

  再插入一个样本数据

  insert into news (newsid title content) values ( test title test body );

   设计思路 用mvc模式编程 将数据以一个helper class News java 打包 并通过NewsDAO java进行数据库操作 设计阶段 用UML勾画出系统的object 此处省略

  NewsDAO的主要方法有 public News getNewsByPrimaryKey(int newsid); public News[] getRecentNews(); public News[] getHotNews();

  News java的代码如下

  package news;

  public class News private int newsid; private int userid; private int kwid; private int hits; private String title; private String content; private String cdate; private String mdate;

  public News() public News(int newsid int userid int kwid int hits String title String content String cdate) this newsid=newsid; this userid=userid; this kwid=kwid; this hits=hits; this title=title; this content=content; this cdate=cdate;

  public News(int id String t String cnt) this newsid = id; this title = t; this content = cnt; public int getNewsid() return newsid; public void setNewsid(int newsid) this newsid=newsid;

   public int getUserid() return userid; public void setUserid(int userid) this userid=userid;

  public int getKwid() return kwid; public void setKwid(int kwid) this kwid=kwid;

  public int getHits() return hits; public void setHits(int hits) this hits=hits;

  public String getTitle() return title; public void setTitle(String title) this title=title;

  public String getContent() return content; public void setContent(String content) this content=content;

   public String getCdate() return cdate; public void setCdate(String cdate) this cdate=cdate;

  

  说明 这个程序可以用作javabean 作为录入表单的参数携带者(params Holder)

  最主要的文件NewsDAO java代码如下

  package news;

  import java sql *;

  public class NewsDAO

  Connection conn = null; Statement stmt = null; ResultSet rs = null; String url="jdbc:mysql://localhost: /joke?user=root";

   public NewsDAO() try Class forName (" mysql jdbc Driver"); catch (java lang ClassNotFoundException e) System err println("joke():"+e getMessage());

  public News getNewsByPrimaryKey(int newsid) throws SQLException Connection conn=null; Statement stmt; ResultSet rs; News news = null;

  String sql="select newsid title content from news "+ " where newsid="+newsid+""; conn = getConnection(); stmt = conn createStatement(); rs=stmt executeQuery(sql);

  if(rs next()) news = new News(rs getInt( ) rs getString( ) rs getString( )); rs close(); stmt close(); conn close(); return news;

  private Connection getConnection() throws SQLException Connection conn = null; conn = DriverManager getConnection(url); return conn;

  

  说明 这个程序作为示例代码 非常简单 没有考虑异常 更主要的method 如getRecentNews()等 大家可以自己参考实现

  简单的jsp调用测试程序 getNews jsp

  <%@page contentType="text/;charset=gb " %> <%@page import="news *" %> <% NewsDAO newsDao = new NewsDAO(); News news = newsDao getNewsByPrimaryKey( ); if(news != null) out println("Title:"+news getTitle()); out println("<br>"); out println("Body:"+news getContent()); else out println("Failed "); %>

  说明 这个简化实现其实是DAO模式的省略形式 还应该有interface dao factory的

  有时间的话 可能以后会给出示例 当然 大家在熟悉oop方式之后 也能够自己补齐

  还有 编译的时候 用 javac news/* java 就可以了

cha138/Article/program/Java/JSP/201311/20088

相关参考

知识大全 进阶教程——Java网络编程

进阶教程——Java网络编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java最初是作为一

知识大全 Java编程那些事儿14——Eclipse基础使用进阶

Java编程那些事儿14——Eclipse基础使用进阶  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 Java进阶 关于Java Socket编程的详细介绍[2]

Java进阶关于JavaSocket编程的详细介绍[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 Java进阶 关于Java Socket编程的详细介绍[1]

Java进阶关于JavaSocket编程的详细介绍[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 JSP页面跳转的实战规则

JSP页面跳转的实战规则  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!cha138/Ar

知识大全 实战体会Java多线程编程精要

实战体会Java多线程编程精要  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Java程序中使

知识大全 实战体会Java多线程编程的精要

实战体会Java多线程编程的精要  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Java程序中

知识大全 Struts模块化编程经典实战教程(一)

Struts模块化编程经典实战教程(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前言  

知识大全 Struts模块化编程经典实战教程(二)

Struts模块化编程经典实战教程(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  STRU

知识大全 实战Java多线程编程精要之高级支持

实战Java多线程编程精要之高级支持  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  线程组  线