自学jsp,servlet遇到的一些问题

2016/7/28

1、遇到的问题:一个大jsp包含一个小jsp,小jsp要用到外面大jsp中用js提取到的属性值,本想用参数方式把js提取到的属性值传递给小jsp,但是Js不能直接给JSP赋值。js是客户端的代码,jsp先执行,js后执行,js是不能给<pg:param name="now_selected" value=""/>赋值的。因为jsp是在先服务器上执行,服务器并不解释其中的静态代码,而是将它们原样输出到客户端。所以在javascript起作用之前jsp已经执行完毕了。
服务器端得到客户端值的方法是提交页面  (Session是运行在服务器端的。而cookie是运行在客户端的)

看到网上的一种常用方法是:

一般是在表单中用一个的隐藏表单元素,在脚本中将js变量值赋给它,然后在后台获取隐藏标签的值。参考http://bbs.csdn.net/topics/340076977

用这种方法试了一下,效果却是:小jsp有时取得到值,有时取不到,不稳定,具体原因也不知道。

最后用了这种方法:因为小的jsp是包含在大jsp中,也就是同一个页面中,干脆就用js直接赋值给小jsp,不采用传值的方式,直接赋值。 

       

 

2016/7/29

2、今天看了servlet,有个疑惑:jsp和servlet都是java代码,他们可以实现一样的东西,那我什么时候用jsp,什么时候用sevlet???

3、把input设置为disabled="disabled",传值过去后那边jsp接收不到这个值的,可以用readonly="readonly"

4、不可以在form标签里面放置模态框的按钮,不然模态框出不来,页面会闪烁。

5、Jsp之间不能传input type=”hidden”,接收不到

 

 

 

2016/7/30

 

2、错误: java.lang.NoClassDefFoundError: org/apache/jsp/Index_jsp(wrong name: org/apache/jsp/index_jsp)

解决办法:把tomcat/work中对应的文件删除,重新运行就OK了。不想找的话就直接把work下的所有文件一起删除就可以了。

 

3、问题:使用RequestDispatcher rd = request.getRequestDispatcher跳转页面的时候,css样式,图片以及js均不会加载,

原因:当在jsp中引入css时,如果其相对路径相对于当前jsp文件的,而在一个和这个jsp的路径不一样的servlet中forward这个jsp时,就会发现这个css样式根本没有起作用。这是因为在servlet中转发时css的路径就是相对于这个servlet的相对路径而非jsp的路径了。

解决方法:页面中引用样式和其它资源的时候,尽量不要用相对路径,因为“当前路径”这个概念在J2EE中是不稳定的。
所以最好都是绝对路径,类似于:
  <% String cp = request.getContextPath();%>  这句放JSP页面开头
  <img src="<%=cp%>/images/xxoo.jpg" />  后面都类似这么写
其中前面的<% %>这段文字主要是得到你应用发布的Context名称

 

4、request.getRequestDispatcher("").forward()中文乱码问题

解决方案一:

不使用PrintWriterout=response.getWriter();,把它注释掉。

解决方案二:

在使用PrintWriterout=response.getWriter();之前必须先设置编码:response.setContentType("text/html;charset=utf-8");或response.setCharacterEncoding("UTF-8");,否会出现中文乱码。



2016/7/31

1、get:不能直接使用js的dom API。用get(0)之后获取到对象的dom对象后就可以使用对应的dom API(http://www.php100.com/html/program/jquery/2013/0905/5839.html

 


3、问题:bind确实能绑定事件,但是那是相对于固定的html标签来说,当页面内容属于动态加载的时候,bind事件就存在一个bug, 只能bind一次,当你第二次触发事件的时候就没用了

jquery中绑定事件一般使用bind,或者click,但是这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定。在1.7版本以前使用live。但是在1.8版本以后推荐使用on。

但是试了都没用,Bind、On、Delegate、Click都不行.

 

 

2016/8/1

1、对于昨天的问题,解决方法:一般动态添加元素时,click方法 直接在html代码里用元素的οnclick=“func()”

 

2问题:在这里绑定了事件onclick

在引入的外部文件app.js文件内,把响应函数放在$(function())里面事件不会响应

 

把响应函数放在外面就可以了

 

原因:$(document).ready里的代码是在页面内容都加载完才执行的。$(document).ready(function(){})中不能调用,但是将方法写在外面即可调用。原因很简单。因为当你把click函数写在那个作为ready的参数的匿名函数里的时候,click函数这个变量的作用域也仅限于那个匿名函数里。那个匿名函数之外自然无法使用 click函数 这个变量。(https://segmentfault.com/q/1010000000333507

其他:

  1. 放在事件处理程序中,比如:<p οnclick=”alert(‘我是由onclick事件执行的Javascript’)”>点击我</p>
  2. 作为URL的主体,这个URL使用特殊的Javascript:协议,比如:<a href=”javascript:alert(‘我是由javascript:协议执行的javascript’)”>点击我</a>

这两种方法写入的Javascript需要触发才能执行,所以除非特别设置,否则页面加载时不会执行。

当HTML解析器遇到一个脚本,它必须按常规终止对文档的解析并等待脚本执行。在dom加载完毕之前,js是无法执行的

http://www.cnblogs.com/jinianjun/archive/2012/08/14/2638772.html

 

3、A href="javascript:;的作用?

般来说a标签里面href后接着的应该是一个网址,就是超链接,但是在制作网页的时候我们有时候不需要进行超链接,用到的只是a标签的效果而已,所以此时应该将a标签的超链接去除改成自己需要的在点击a标签时触发的事件,这个时候用以上的模式就可以去除a的超链接改为自己的js事件。

 


 

 

2016/8/3


4、查看timeglider插件文档http://timeglider.com/widget/?p=json

 

 

2016/8/4

1、为了结构清晰,我把时间轴的events元素包装成一个类,用json-lib包把对象转换成json格式。(http://shuaigg-babysky.iteye.com/blog/354516

2、问题:已经导入了json的jar包及其需要的依赖包运行到json对象的代码时候发生 Java.lang.NoClassDefFoundError: net/sf/json/JSONObject异常

解决办法:打开eclipse所关联的tomcat文件夹,将所需要的jar包复制到lib文件夹里面,重启项目,问题搞定


 

2016/8/5

1、 完成时间轴,这个文件路径弄了很久,最后请教了同学。生成的json文件要放在localhost目录下,一开始还以为直接把路径写成”localhost:xxxx”这样子,但是不行。

原因:localhost是要经过虚拟机后的路径,不能直接用这个路径。

解决方法:this.getClass().getResource("").getPath()得到当前类的路径,然后再将这字符串截取前面的项目路径,再字符串拼接索要的路径

path=this.getClass().getResource("").getPath();

   inta = path.indexOf("WEB-INF");

    path= path.substring(0, a)+"json/";


2016/8/10


2、    Java类中不能直接写session,要通过这个方法得到session对象

HttpSession session =request.getSession();


2016/8/11

服务器部署

3、    Ubuntu 安装mysql和简单操作http://www.cnblogs.com/zhuyp1015/p/3561470.html

sudo apt-get install mysql-server

sudo apt-get isntall mysql-client

 sudo apt-get install libmysqlclient-dev

   mysql -u root -p 登录数据库

创建数据库db_fee

建表

 

4、    Ubuntu部署

1,        将项目达成war包(用eclipse,项目右键-->Export-->选择war file

2,    tomcat考到ilnux对应的目录下

3,    然后将项目的war包放到tomcatwebapps目录下

4,    启动tomcat:切换到bin目录下命令:./startup.sh

5,    打开localhost:8080/login/就可以了

 

安装chrome

http://www.cyberciti.biz/faq/how-to-install-google-chrome-in-ubuntu-linux-12-xx-13-xx/

打开终端开启root账户 :sudopasswd -u root

 



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值