路径问题,jquery小常识,ajax传值(表单),常见数据库使用

来源:互联网 发布:java中array的用法 编辑:程序博客网 时间:2024/06/10 15:03

这两天做项目遇到的一些问题的总结:
一,各种路径问题
JSP,Servlet,文件,web,相对,绝对。。。。醉了
jsp中获得文件路径
1、根目录所对应的绝对路径:request.getRequestURI();

2、文件的绝对路径:application.getRealPath(request.getRequestURI())

3、当前web应用的绝对路径:application.getRealPath(“/”)

4、取得请求文件的上层目录:

newFile(application.getRealPath(request.getRequestURI())).getParent()

servlet中获得文件路径
1、根目录所对应的绝对路径:request.getServletPath()

2、文件的绝对路径:

request.getSession().getServletContext().getRealPath(request.getRequestURI())

3、当前web应用的绝对路径:servletConfig.getServletContext().getRealPath(“/”)

注:ServletContext对象获得几种方式:

javax.servlet.http.HttpSession.getServletContext()

javax.servlet.jsp.PageContext.getServletContext()

javax.servlet.ServletConfig.getServletContext()

java中获得文件路径
1、Thread.currentThread().getContextClassLoader().getResource(“”).toURI().getPath()

2、
ClassLoader 提供了两个方法用于从装载的类路径中取得资源:
public URL getResource (String name);
public InputStream getResourceAsStream (String name);

这里name是资源的类路径,它是相对与“/”根路径下的位置。getResource得到的是一个URL对象来定位资源,而getResourceAsStream取得该资源输入流的引用保证程序可以从正确的位置抽取数据。
但是真正使用的不是ClassLoader的这两个方法,而是Class的 getResource和getResourceAsStream方法,因为Class对象可以从你的类得到(如YourClass.class或 YourClass.getClass()),而ClassLoader则需要再调用一次YourClass.getClassLoader()方法,不过根据JDK文档的说法,Class对象的这两个方法其实是“委托”(delegate)给装载它的ClassLoader来做的,所以只需要使用 Class对象的这两个方法就可以了。

下面是一些得到classpath和当前类的绝对路径的一些方法。你可能需要使用其中的一些方法来得到你需要的资源的绝对路径。

1.this.getClass().getResource(”“)
得到的是当前类class文件的URI目录。不包括自己!
如:file:/D:/workspace/jbpmtest3/bin/com/test/

2.this.getClass().getResource(”/”)
得到的是当前的classpath的绝对URI路径 。
如:file:/D:/workspace/jbpmtest3/bin/

3.this.getClass() .getClassLoader().getResource(”“)
得到的也是当前ClassPath的绝对URI路径 。
如:file:/D:/workspace/jbpmtest3/bin/

4.ClassLoader.getSystemResource(”“)
得到的也是当前ClassPath的绝对URI路径 。
如:file:/D:/workspace/jbpmtest3/bin/

5.Thread.currentThread().getContextClassLoader ().getResource(”“)
得到的也是当前ClassPath的绝对URI路径 。
如:file:/D:/workspace/jbpmtest3/bin/

6.ServletActionContext.getServletContext().getRealPath(“/”)
Web应用程序 中,得到Web应用程序的根目录的绝对路径。这样,我们只需要提供相对于Web应用程序根目录的路径,就可以构建出定位资源的绝对路径。
如:file:/D:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/WebProject

总之,我自己使用会选择如下:
path 不以’/’开头时默认是从此类所在的包下取资源,以’/’开头则是从ClassPath根下获取。
当前类的加载路径使用相对路径来获取资源地址
MyClass.class.getResource(FILE_NAME).getPath()
使用绝对运行时路径
MyClass.class.getResource(File.separator + FILE_NAME).getPath();

二.表单使用jquery+ajax提交
要想使用form的submit还要下载Jquery.form插件
我用的是普通的click 方法

<input id="submit" type="button" value="Submit" onclick="checkAndSub();"  >
                function checkAndSub(){                         var flag=0;                         if($("#driver").val()==""){                          // alert("请输入driver!");                            $('#span_driver').text("请输入driver!");                             flag=1;                         }                         if($("#url").val()==""){                          // alert("请输入url!");                           $('#span_url').text("请输入url!");                           flag=1;                         }                         if($("#user").val()==""){                          // alert("请输入user!");                           $('#span_user').text("请输入user!");                           flag=1;                         }                         if($.trim($("#password").val())==""){                            //alert("请输入password!");                            $('#span_password').text("请输入password!");                            flag=1;                         }                         if($.trim($("#tableName").val())==""){                            //alert("请输入password!");                            $('#span_tableName').text("请输入tableName!");                            flag=1;                         }                         if(flag==1){                           //alert("没提交");                         }else{ var param                                     ="listId="+listId+"&"+$('#DBForm').serialize()+"&"+"classification="+$("select option:selected").text();                         alert(param);                         $("#Composition").load("fillReport.do","listId="+listId+"&"+$('#DBForm').serialize()+"&"+"classification="+$("select option:selected").text());                              }

使用Form提交数据
<script type ="text/javascript" src ="../js/jquery.js"></script> //必须要引用
<script type ="text/javascript" src ="../js/jquery.form.js"></script> //必须要引用

三JQuery
(1)jQuery (necessary for Bootstrap’s JavaScript plugins
(2)jquery.js和jquery.min.js的区别介绍
query2.js里的代码是没有进行处理的原代码,适合于人们阅读与研究.
jquery.min.js里的代码进行过特殊的处理,如变量的名称基本都写成一个字母,而且格式缩进都被删除了.
所以文件容量比较小(min),一般在网页中调用这个文件

(3)级联菜单,select ajax传值重要部分

  $("#privince").change(function(){       $.ajax({type:"post",url:"select.do",dataType:"json",           data:{"privinceId" : $("#privince option:selected").val()},           success:function(data){              $("#city").html("");              $.each(data,function(i,item){                  $("#city").append("<option value="+item.id+">"+item.name+"</option>");              });           }       });    });

四.数据库相关复习
JDBC:
Class.forName(DRIVER); //注册驱动
//获取连接字符串
Connection conn = DriverManager.getConnection(URL,NAME,PASS);
Statement s= conn.createStatement();
String query=”create table gubiao(date datatime,open float,high float,low float,close float,amount integer,money float)”;//创建数据库属性
s.executeUpdate(query);
s.close();
conn.close();
mysql命令行查看表结构,字段等信息
desc 表名;
show columns from 表名;
describe 表名;
show create table 表名;

0 0
原创粉丝点击