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

这篇博客总结了在JavaWeb开发中遇到的路径问题,包括JSP、Servlet和Java中获取文件路径的方法。此外,还介绍了jQuery的AJAX表单提交以及jQuery库的使用,包括jquery.min.js和jquery.js的区别。最后,博主分享了数据库操作的复习,如JDBC连接与MySQL命令行查询。

这两天做项目遇到的一些问题的总结:
一,各种路径问题
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 表名;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值