∪∩deniable Design

个人JAVA版GAE(google app engine),struts2+jpa+jQuery开发,互相交流 http://iunbug.appspot.com/
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

     摘要:    1第二章    2课堂习题:    3public class Main     4{    5    public static void&nb...  阅读全文

posted @ 2008-08-18 09:15 ∪∩BUG 阅读(3373) | 评论 (5)编辑 收藏

     摘要:  1<%@ page contentType="text/html; charset=UTF-8"%>  2<%@ taglib prefix="s" uri="/struts-tags"%>  3  4<!--   5  ...  阅读全文

posted @ 2008-08-16 23:12 ∪∩BUG 阅读(1146) | 评论 (1)编辑 收藏

 

 1Struts 笔记
 22008 08 15
 3当你使用struts 2 tags时,如果使用代码:
 4<s:set name="name" value="<%= "'" + request.getParameter("name") + "'" %>" />
 5或者
 6
 7<s:set name="name"value="${param.name}" />
 8都会发生下列错误:
 9According to TLD or attribute directive in tag file, attributevalue does not accept any expressions
10而得使用:
11<s:set name="name" value="#parameters.name[0]" />
12才行
13原因可能是因为你使用了<%..%>代码 or JSP EL表达式。Struts 2从 version2.0.11开始已经不支持strutstag与JSP EL表达式混合使用了(不在struts tag里使用EL还是可以的)
14
15
16技巧(Trick Tip):
17对于<s:property>,是使用
18<s:property value="#parameters.name"/>
19而对于<s:set>,则要使用(否则出错):
20<s:set name="name" value="#parameters.name[0]" />
21
22但是如果使用struts include tag来传参数,则<s:property><s:set>无法获取传来的参数,如:
23<body>
24<s:include value= "/welcome.jsp">
25<s:param name="name">Scott</s:param>
26</s:include>
27</body>
28那么在webcome.jsp里通过<s:property><s:set>无法获取"name"参数:
29<s:property value="#parameters.name" />
30<s:set name="name"value="#parameters.name[0]" />
31而只能够用
32<%request.getParameter("name")%>
33来获取
34
35例如:
36<%@ page contentType="text/html; charset=UTF-8"%>
37<%@ taglib prefix="s" uri="/struts-tags"%>
38<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
39<html>
40    <head>
41        <title>Condition Flow</title>
42    </head>
43    <body>
44        <h3>
45            Condition Flow
46        </h3>
47
48        <!-- 注意"'" + request.getParameter("name") + "'"这里的单引号 -->
49        <!-- s:if test="#name == 'Max'" 判断取出name的值是否与Max相等,#表示取出值 -->
50        <s:set name="name"
51            value="#parameters.name[0]" />
52
53        <s:if test="#name == 'Max'">
54            Max's file here
55        </s:if>
56        <s:elseif test="#name == 'Scott'">
57            Scott's file here
58        </s:elseif>
59        <s:else>
60            Other's file here
61        </s:else>
62    </body>
63</html>
64<!--
65            这里有点小技巧:
66            本来可以用#parameters.name[0]来获得,请求中name的值。但是,在我实现include例子时,
67            无论我用param标志给name赋任何值,#parameters里面不会含有任何值,所以#parameters.name也为空值。
68            
69            其原因为:
70            当使用include标志时,被包含的页面(included)里#parameters拿到的是包含页面里的请求参数。
71            
72            因此,这里必须手工调用request.getParameter("name")。        
73-->
74

posted @ 2008-08-15 21:43 ∪∩BUG 阅读(411) | 评论 (0)编辑 收藏


JSP笔记
2008 05 05
一.系统环境变量的配置:
新建:
变量名:JAVA_HOME
值:E:\Program File\Java\jdk1.
6.0_03        //JDK的主目录

变量名:CATALINA_BASE
值:D:\Program Files\Apache Software Foundation\Tomcat 
5.0        //TOMCAT主目录

变量名:CATALINA_HOME
值:D:\Program Files\Apache Software Foundation\Tomcat 
5.0        //TOMCAT主目录

变量名:SQL_DRIVER
值:E:\Program File\Microsoft SQL Server 
2000 Driver for JDBC        //SQL驱动主目录

变量名:classpath        
//包含SQL,JDK,TOMCAT
值:
(
1).;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar;%CATALINA_HOME%\common\lib\jsp-api.jar;D:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;D:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;D:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar

(
2).;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\htmlconverter.jar;%JAVA_HOME%\lib\jconsole.jar;%CATALINA_HOME%\common\lib\servlet-api.jar;%CATALINA_HOME%\common\lib\jsp-api.jar;e:\Program File\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;e:\Program File\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;e:\Program File\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar

(
3).;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\htmlconverter.jar;%JAVA_HOME%\lib\jconsole.jar;%CATALINA_HOME%\common\lib\servlet-api.jar;%CATALINA_HOME%\common\lib\jsp-api.jar;%SQL_DRIVER%\lib\msbase.jar;%SQL_DRIVER%\lib\mssqlserver.jar;%SQL_DRIVER%\lib\msutil.jar

变量名:Path
值:SystemRoot
%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;D:\Program Files\Microsoft SQL Server\80\Tools\BINN;%JAVA_HOME%\bin

二.所建的JSP主文件夹myjsp要放在:D:\Program Files\Apache Software Foundation\Tomcat 
5.0\webapps
在D:\Program Files\Apache Software Foundation\Tomcat 
5.0\webapps\myjsp必须建一个文件名为:WEB-INF文件夹

三.启动测试Tomcat时,先运行Monitor Tomcat再到D:\Program Files\Apache Software Foundation\Tomcat 
5.0\bin运行startup.bat
接着到地址栏输入http:
//localhost:8080


!!!erro 500之一
 D:\Program Files\Apache Software Foundation\Tomcat 
5.0\common\lib 的目录

2008-06-10  17:19    <DIR>          .
2008-06-10  17:19    <DIR>          ..
2004-08-29  08:02             8,412 ant-launcher.jar
2004-08-29  08:02           958,858 ant.jar
2004-08-29  08:02           559,366 commons-collections-3.1.jar
2004-08-29  08:02           107,631 commons-dbcp-1.2.1.jar
2004-08-29  08:02           112,341 commons-el.jar
2004-08-29  08:02            42,492 commons-pool-1.2.jar
2004-08-29  08:02           351,903 jasper-compiler.jar
2004-08-29  08:02           105,502 jasper-runtime.jar
2004-08-29  08:02            50,491 jsp-api.jar
2004-08-29  08:02            27,968 naming-common.jar
2004-08-29  08:02            14,870 naming-factory.jar
2004-08-29  08:02             2,059 naming-java.jar
2004-08-29  08:02            42,308 naming-resources.jar
2004-08-29  08:02            97,689 servlet-api.jar
2007-09-25  01:11        12,171,847 tools.jar
              
15 个文件     14,653,737 字节

1JSP笔记
2
32008 05 12
4一.关于打开http://localhost:8080/显示空白页面的解决办法
5    今天netbeans与tomcat发生了冲突.导致打开http://localhost:8080/显示空白页面.可以先卸载了netbeans再卸载tomcat后重新安装来解决的.
6    不过可以用以下的办法来打开例子.
7    1.地址栏:http://localhost:8080/StudMS/ (StudMS是我的例子)可以打开我们正在使用的例子.
8    2.地址栏:http://localhost:8080/manager/html    可以打开到tomcat5.0/webapps下的例子目录.就是平常的Tomcat Web Application Manager 页面.这时可以打开想打开的例子.

posted @ 2008-07-29 22:21 ∪∩BUG 阅读(270) | 评论 (0)编辑 收藏

 

 1常用 JDBC 驱动名字和 URL 列表 
 2(1)
 3ODBC  driver
 4sun.jdbc.odbc.JdbcOdbcDriver
 5jdbc:odbc:name 
 6
 7用 COM.ibm.db2.jdbc.net.DB2Driver 连接到 DB2 数据库
 8一个 DB2 URL 的示例:
 9jdbc:db2://aServer.myCompany.com:50002/name 
10
11用 com.sybase.jdbc.SybDriver连接到 Sybase 数据库
12一个 Sybase URL 的示例:
13jdbc:sybase:Tds:aServer.myCompany.com:2025 
14
15(2)
16MySQL driver
17com.mysql.jdbc.Driver
18jdbc:mysql://hostname:3306/dbname?useUnicode=true&characterEncoding=GBK 
19
20(3)
21Microsoft SQL Server Driver
22com.microsoft.jdbc.sqlserver.SQLServerDriver
23jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=WapSvc;User=sa;Password=pwd 
24
25(4)
26Informix
27com.informix.jdbc.IfxDriver
28jdbc:informix-sqli://hostname:1526/dbname:INFORMIXSERVER=informixservername;user=username;password=password 
29
30(5)
31Oracle
32oracle.jdbc.driver.OracleDriver
33jdbc:oracle:thin:@hostname:1521:<SID> 
34
35(6)
36Postgresql
37org.postgresql.Driver
38jdbc:postgresql://localhost/soft 
39
40(7)
41Apache Derby/Java DB
42org.apache.derby.jdbc.ClientDriver
43jdbc:derby://localhost:1527/databaseName;create=true 
44
45(8)
46Access 是通过 ODBC 连接的. Excel 也可以. 甚至可以动态构造连接字符串: 
47这样可以直接连接到 Access 数据库文件. 
48jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\mydata.mdb 
49类似的 Excel 文件也可以用类似方法: 
50
51jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=.\mydata.xls
52

posted @ 2008-07-27 18:09 ∪∩BUG 阅读(226) | 评论 (0)编辑 收藏

(1)SQL注入获取用户密码:
1select * from student where Sno='0605030320' or '1'='1' and password='abc'
(2)设置参数在底层防止注入
 1/**
 2 * 
 3 */

 4package user.DAO;
 5
 6import java.sql.*;
 7
 8import user.entity.User;
 9
10/**
11 * 用户数据访问层
12 * @author Administrator
13 *@version 1.0
14 *日期2008 07 24
15 */

16public class UserDAO {
17    /**
18     * 根据用户名和密码查找用户,找到了返回 user 对象,否则返回 null
19     * @param(参量) user
20     */

21    public findUserByUsernamePassword(User user){
22        // 1.注册驱动
23        try {
24            Class.forName("com.mysql.jdbc.Driver");
25        }
 catch (ClassNotFoundException e) {
26            // TODO Auto-generated catch block
27            e.printStackTrace();
28        }
//mysql驱动
29        
30        java.sql.Connection conn = null;
31        PreparedStatement pstmt = null;    
32        ResultSet rs = null;
33        
34        try {
35            //2.获取数据库的连接(接数据库)
36            conn = java.sql.DriverManager.getConnection(
37                    "jdbc:mysql://localhost/stums?useUnicode=true&characterEncoding=GBK","root","admin");
38            
39            //执行SQL
40            pstmt = conn.prepareStatement("select * from student where Sno =? and Password = ?");
41            
42            //设置参数防止SQL注入
43            pstmt.setString(1, user.getUsername());
44            pstmt.setString(2, user.getPassword());
45            
46            //获取数据集
47            rs = pstmt.executeQuery();
48            
49            if(rs != null && rs.next()){
50                user.setId(rs.getInt("Sno"));
51                return user;
52            }

53            
54        }
 catch (SQLException e) {
55            // TODO Auto-generated catch block
56            e.printStackTrace();
57        }
finally{    //释放资源
58            try {
59                rs.close();     //关闭数据集
60            }
 catch (Exception e) {
61                // TODO Auto-generated catch block
62                e.printStackTrace();
63            }

64            try {
65                pstmt.close();    //关闭表连接
66            }
 catch (Exception e) {
67                // TODO Auto-generated catch block
68                e.printStackTrace();
69            }

70            try {
71                conn.close();    //关闭数据库连接
72            }
 catch (Exception e) {
73                // TODO Auto-generated catch block
74                e.printStackTrace();
75            }

76        }

77        
78        return null;
79        
80        
81    }

82
83}

84

posted @ 2008-07-27 18:08 ∪∩BUG 阅读(1731) | 评论 (0)编辑 收藏

大量的编辑器里都能用鼠标拖动代码,可是Eclipse-MyEclipse里怎么就失效了呢?
作为初学者没有这个功能真是有些烦恼.
今天写一个JavaBeans突然发现在Java代码里可以实现鼠标拖动的,很兴奋,试了几遍却发现只能拖动一个完整单词或完整词组或是语句.
想拖动一个注释符号或是大括号之类的就不那么方便了.

posted @ 2008-07-27 18:07 ∪∩BUG 阅读(1121) | 评论 (0)编辑 收藏

     摘要:  1JAVA笔记  22008 04 22  31.用javac编译代码时,javac 后的文件名对大小写不敏感,如一个名为Hello.java的文件,  4    可以这样写:javac hello.java或javac HEllO.java  52...  阅读全文

posted @ 2008-07-27 17:01 ∪∩BUG 阅读(482) | 评论 (1)编辑 收藏

仅列出标题
共14页: First 上一页 6 7 8 9 10 11 12 13 14