java技术博客

jsp博客
数据加载中……

DAO设计模式

产生的原因
JDBC不能出现在JSP页面中
什么是DAO
J2EE组件层次
客户端——》表示层--》业务层--》数据层(DAO)

--delete
DROP TABLE person;
--create 
CREATE TABLE person{
}
--ts
commit;


异常 的处理通常由调用它的方法来处理

posted @ 2008-10-22 23:03 郭兴华 阅读(127) | 评论 (0)编辑 收藏
MVC设计模式

jsp+javabean开发(jsp接收参数,调用 javaBean)

开发速度快,有一个问题,藕合性高,维护困难

一个人开发使用,人多了不好控制

jsp+DAO设计模式

jsp+servlet+javabean(servlet调用javabean)

jsp:UI

javaBean:重复调用

servlet:安全性高性能也高,

jsp两种跳转方式

  1. response.sendRedirect():客户端跳转,请求不保存
  2. <jsp:forward page="">:服务器端跳转,请求要保存

 

 

 

jsp中有四种属性范围:page ,response,application,session

package cn.mldn.lxh.servlet ;

import java.io.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;
import cn.mldn.lxh.bean.MVCCheck ;

public class MVCServlet extends HttpServlet
{
    
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
    
{
        
this.doPost(req,resp) ;
    }

    
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
    
{
        String name 
= req.getParameter("uname") ;
        MVCCheck mc 
= new MVCCheck() ;
        
// 将请求内容设置到mc对象之中
        mc.setName(name) ;
        String path 
= null ;
        
if(mc.isValidate())
        
{
            
// 保存名字在request范围之中
            req.setAttribute("name",mc.getName()) ;
            path 
= "mvc_success.jsp" ;
        }

        
else
        
{
            path 
= "mvc_failure.jsp" ;
        }

        
// 进行跳转
        req.getRequestDispatcher(path).forward(req,resp) ;//向下传
    }

}
;
/*
  <servlet>
    <servlet-name>mvc</servlet-name>
    <servlet-class>cn.mldn.lxh.servlet.MVCServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc</servlet-name>
    <url-pattern>/mvcdemo.mldn</url-pattern>
  </servlet-mapping>
*/
servlet传值传不过去,用Session传,但是Session占用空间
解决方法:Dispatcher


本章资料下载
PDF笔记

posted @ 2008-10-22 21:22 郭兴华 阅读(135) | 评论 (0)编辑 收藏
jsp标签库编程


笔记下载
代码下载地址:
/Files/guohua/TaglibProject.rar
hello.java
package org.lxh.demo01;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

public class Hello extends TagSupport {

    @Override
    
public int doStartTag() throws JspException {
        
// 向JSP页面中打印“www.mldn.cn”的字符串
        String str = "www.mldn.cn" ;
        
// 在Servlet里如果要打印,则要使用PrintWriter
        
// 如果在标签库中打印需要使用pageContext
        JspWriter out = pageContext.getOut() ;
        
try {
            out.println(str);
        }
 catch (IOException e) {
            e.printStackTrace();
        }

        
// 只要打印完了字符传,则后面的代码就不需要执行了
        return TagSupport.SKIP_BODY;
    }


}


hello.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="/WEB-INF/hello.tld" prefix="lxh"%>
<html>
  
<head>
    
<title>My JSP 'hello.jsp' starting page</title>
    
<!--
    
<link rel="stylesheet" type="text/css" href="styles.css">
    
-->

  
</head>
  
  
<body>
    
<h1><lxh:mldn/></h1>
  
</body>
</html>
helloxml.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="/WEB-INF/hello.tld" prefix="lxh"%>
<html>
  
<head>
    
<title>My JSP 'hello.jsp' starting page</title>
    
<!--
    
<link rel="stylesheet" type="text/css" href="styles.css">
    
-->

  
</head>
  
  
<body>
    
<h1><lxh:mldn/></h1>
  
</body>
</html>
hello.tld
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "web-jsptaglibrary_1_2.dtd" >
<taglib>
    
<tlib-version>1.0</tlib-version>
    
<jsp-version>2.0</jsp-version>
    
<short-name>hello</short-name>
    
<tag>
        
<name>mldn</name>
        
<tag-class>org.lxh.demo01.Hello</tag-class>
        
<body-content>empty</body-content>
    
</tag>
</taglib>

posted @ 2008-10-22 19:20 郭兴华 阅读(170) | 评论 (0)编辑 收藏
jdbcorache.jsp

<%@ page contentType="text/html;charset=gb2312"%>
<%@page import ="java.sql.*"%>
<%--
使用JDBC连接Oracle数据库
使用MLDN数据库
用户名:scott
密码:tiger
--%>
<%!
String DBDRIVER="oracle.jdbc.driver.OracleDriver";
String DBURL="jadb:oracle:thin:@localhost:1521:mldn";
String DBUSER="scott";
String DBPASSWORD="tiger";
Connection conn=null;
statement stmt=null;
%>
<%try{Class.forname(DBDRIVER);
conn=DriverManger.getConnection(DBURL,DBUSER,DBPASSWORD);
//create table
String sql="CREATE TABLE mldnab(name vachar(20))";
stmt=conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
}catch(Exception e){
out.println(e);

}


posted @ 2008-10-22 16:37 郭兴华 阅读(81) | 评论 (0)编辑 收藏
ConstructorTest

/**
*测试类构造器的调用顺序
*/
public class ConstructorTest{
public static void main(String[] args){
C c=new C("hello");
}
}
class A{
public A(){
System.out.println("this is A");
}
}
class C extends B{
public C(String str){
super(str);
System.out.println("this is C");
}
}


posted @ 2008-10-22 13:49 郭兴华 阅读(137) | 评论 (0)编辑 收藏
ToStringTest.java

public class ToStringTest{
public static void main(String[] args){
System.out.println(new Student("youName","20031001"));
}
}

posted @ 2008-10-22 13:41 郭兴华 阅读(106) | 评论 (0)编辑 收藏
SubStringTest.java

/**
*通过这个程序,展示字符串求取子串的方法
*/
public class SubStringTest{
public static void main(String[] args){
String str="I am a Programmer";//定义字符串
for(int i=0;i<str.length();i++){
System.out.println("这是第"+i+"个子串:"+str.subString(i));
}}}

posted @ 2008-10-22 13:38 郭兴华 阅读(159) | 评论 (0)编辑 收藏
InputTest.java

/**
*读取键盘输入
*/
import javax.swing.JOptionPane;
public class InputTest{
public static void main(String[] args){
String strName=JOptionPane.showInputDialog("Input your name:");
String strAge=JOptionPane.showInputDialog("Input your age:");
int age=Integer.parseInt(strAge);
System.out.println("Welcome you :"+strName);
System.out.println("你还有"+(60-age)+"年可以退休了!!");
System.exit(0);
}
}

posted @ 2008-10-22 13:30 郭兴华 阅读(136) | 评论 (0)编辑 收藏
FormateValue.java

/**
*通过这个程序,测试格式器的使用方法
*/
import java.text.NumberFormat;
import java.util.locale;
public class FormateValue{
public static void main(String[] args){
double x=100000.0/3;
System.out.println("the value is :"+x);
//首先以默认地区的格式器来输出
System.out.println("接下来输出的是美国地区的格式器的结果:");
NumberFormat number=NumberFormat.getNumberInstance(Locale.US);
NumberFormat number=NumberFormat.getCurrencyInstance(Locale.US);
NumberFormat percent=NumberFormat.getPercentInstance(Locale.US);


FormatValue fm=new FormatValue();
fm.print(number,x);
fm.print(currency.x);
fm.print(percent,x);

System.out.println("接下来输出的是默认地区的格式器的结果:");
NubmerFormat nu=NumberFormat.getNumberInstance();
NubmerFormat cu=NumberFormat.getCurrencyInstance();
NubmerFormat be=NumberFormat.getPercentIntstance();
fm.print(nu,x);
fm.print(cu,x);
fm.print(pe,x);
}
public void print(NubmerFormat nu,double x){
System.out.println(nu.format(x));
}
}

posted @ 2008-10-22 13:21 郭兴华 阅读(179) | 评论 (0)编辑 收藏
FindSubstring.java

/**
*查找特定的子串
*/
public class FindSubstring{
public static void main(String[] args){
String str="Welcome the body.";
System.out.println("Find the substring boy occurrence:"+str.indexOf("boy"));//查找子串
System.out.println("Find the substring by occurrence: "+str.indexOf("by"));//查找子串
System.out.println("Find the char t occurrence: "+str.indexOf('t'));//查找特定的字符
System.out.println("Test the string begin with wel.:"+str.startsWith("wel"));//是否以"wel"开始
System.out.pritnln("Test the string end with body.:"+str.endWith("boy"));//是否以"boy"结束
}
}

posted @ 2008-10-22 13:06 郭兴华 阅读(198) | 评论 (0)编辑 收藏
仅列出标题
共9页: 上一页 1 2 3 4 5 6 7 8 9 下一页