使用Myeclipse开发Web项目时遇到的困难

1. 连接数据库时出现:Unsupported  major.minor version 51.0

原因:例如:外部jar包使用jdk1.7编译,而使用此jar包的工程jdk版本为jdk1.6,所以版本不支持。即低版本的jdk去执行高版本编译的jar包就会报错。
知识扩充:major.minor version ,它相当于一个软件的主次版本号,只是在这里是标识的一个Java Class的主版本号和次版本号。

解决办法:(若此外部jar包使用jdk1.7编译为例)

(1)myeclipse的平台jdk编译版本(或者只更改需要更改的项目):项目名右击->preferences->java compiler
(2)jdk版本:preferences->java->installed JREs.选中jdk1.7(如果没有此版本的jre则添加)
(3)将tomcat运行时的jdk版本也改成1.7:preferences->myeclipse->server->tomcat->选择自己使用的(点一下tomcat,看哪个是enable的)tomcat->jdk->更改

以下是jdk版本号的对应关系,上面出现的51.0,是指主版本号为51,次版本号为0

2. 向jsp中导入sql驱动包的步骤:

 a.将驱动包放到项目的WebRoot->WEB-INF->lib里面
 b.创建路径:右键单击在lib里的驱动包,在出现的选项里选择Build Path,再选择Add to Build Path

3.jsp连接数据库后,读取数据库中的数据出现乱码。(即数据库中的数据为中文,jsp中使用select语句查询读取后出现乱码)

jsp连接数据库语句指定的编码不正确。
解决办法:在连接数据库的代码内写入useUnicode=true&characterEncoding=UTF-8&autoReconnect=true

4.get和post请求方式:

get提交方式:method="get" 和地址栏请求方式、超链接(<a href="">)请求方式,默认都属于get提交方式。
get和post请求方式的区别:
a. get方式在地址栏显示请求信息(但是地址栏能够容纳的信息有限,4-5KB,若果请求数据存在大文件,图片等,会出现地址栏无法容纳全部的数据而出错);post不显示。
b. 文件上传操作,必须是post

5. post和get请求时出现乱码:

a. post请求时出现乱码。
解决办法:在jsp页面的开头加上<%request.setCharacterEncoding("UTF-8");%>

                或者在jsp页面的java代码段<%...%>的开头写request.setCharacterEncoding("UTF-8");语句。

b. get请求时出现乱码。

原理:我们常用Tomcat作为运行Servlet和JSP的容器,而Tomcat内部默认的编码是ISO 8859-1,所以对于get请求方式,其传递的数据(URI)会附加在访问的资源后面,其编码是Tomcat默认的,如果修改Tomcat的编码,对于所有的get请求方式便不会出现乱码,包括重定向和超链接。建议:使用tomcat时,首先在server.xml中,统一get方式的编码(tomcat7及之前版本默认编码是iso-8859.1,tomcat8以后默认为utf-8)
具体措施:

i: a.统一每一个变量的编码(不推荐)
    new String (旧编码,新编码)
 eg:name=getParameter("name");

        name = new String(name.getBytes("iso-8859-1"),"utf-8");

ii: 在Tomcat的配置文件的server.xml中找到修改Tomcat的端口的地方,在其内部加入URIEncoding="utf-8"。在登录界面,我是用这种方法解决的。

6. /的含义:

  a. web.xml中的/:代表项目根目录(即<url-pattern>中的/)
相当于:http://localhost:8080/项目名/
  b. jsp中的/:代表服务器根路径 (即表单或者超链接中请求servlet类时)
相当于:http://localhost:8080/

7.myeclipse中项目的根目录:

有两个根目录,一个是WebRoot,另一个是构建路径(如src),它们同级别。另外在项目下可以右键单击,创建Source Folder,这个文件夹属于构建路径,和src同级,也可以叫做根目录。

8.如果jsp出现错误:The  import Xxx(类名) cannot be resolved
尝试解决办法:
a.(可能是jdk、tomcat版本问题)右键项目->build path,将其中报错的libary或lib删除后,重新导入
b. 清空各种缓存:点击Project下的clean、或者进入tomcat目录,删除里面work的子目录
c.重启计算机
d.如果在jsp页面中import类时,如果直接写<%page import="类名"%>,需要在类名前加入包名<%page import="包名.类名"%>

9.jsp页面连接数据库,执行存储过程(有参数),报错:Para(第一个参数名)未获取。

原因:参数是从jsp页面的input标签中获取的,input标签内可以设置name属性值,通过getParameter()来获取。但也可以设置id属性值,当id属性值与name属性值相同时,就会出现获取不到参数值这种错误。

解决办法:只在input标签中设置name属性值 或者 在同一个input标签中,id属性值与name属性值要不同

10. 在Windows的命令提示符中输入: java -version,可以查看本机中jdk版本

11. 一般而言,修改web.xml、配置文件、java代码,需要重启tomcat服务
   但是如果修改jsp\html\css\js,不需要重启,刷新一下页面就行。

12. 在jsp页面中<% %>写out.print和out.println不能回车,要想回车,需加“<br/>",即out.print()、<%= %>可以直接解析html代码。

13. css中高度设置百分比但是没有效果。
 原因:百分比的大小是相对其父级元素高度的大小。对于宽度来说:其父级元素无须确定宽度就能设置百分比。但对于高度不同:若某元素的父元素没有确定高度,则无法有效使用height=XX%的样式。
eg:尝试加body{height:100%},但并没有用。因为body的父级元素的高度还没定下来。因此还需对html元素设置高度;或者在*{}中设置高度百分比。


14. 给div设置背景图片时,应在div标签后面写。若单独给div写css设置,则不显示。
eg:<div class="deng_lu2" style="background-image:url('image/背景1.jpg');">

15. 表格的间距。
  border-collapse,该属性设置相邻单元格的边框的距离。有两个值,若为collapse,指相邻边被合并,若为separate,表示边框独立。
 只有border-collapse:separate(即边框独立)的条件下,再设置border-spacing属性,该属性作用等同于标签属性cellspacing(单元格边距),即border-spacing:0等同于cellspacing="0"。一般这样使用border-spacing:10px 10px;指的是行列的间距。

16. 问题:js文件中的中文提示信息发到jsp页面中出现乱码。
 原因:.js文件创建默认是gbk编码,而该jsp页面是utf-8编码的页面。
解决:修改js文件的编码,右键单击js文件->properties进行设置字符编码。


17. 在servlet中使用session。
a. 先在servlet界面导入seesion包。eg:import javax.servlet.http.HttpSession;
b. 在doGet()或doPost()方法中创建session对象。eg:HttpSession session=request.getSession();
c 在代码中可以使用session。


18. servlet中out对象的获取。(与上面一题的类似)
a. 首先导入包:import java.io.PrintWriter;
b. 创建out对象:PrintWriter out = response.getWriter();

19. 在表单中给input标签起name属性值时,不可与sql关键字的名字相同,否则在servlet界面使用request.getParameter()获取时,会报参数错误。

20.在向jsp中插入图片时,图片的后缀名.jpg和.JPG有区别,区别大小写。

21. 调用Servlet时,jsp页面一片空白,只出现This is class mvc.servlet.Query_car, using the POST method 该信息。
解决办法:关闭Tomcat服务器,重新打开。

22. 在sql server 中,手动修改某表中的数据时,出现错误信息:"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行"
错误原因:提示被删除的行不是唯一行,因为表中没有主键,出现重复值。
解决:
  方法一:使用sql语句,给表中添加主键
  方法二:把表删除,重新创建,这次创建时设置主键,再将符合条件的数据导入表
  方法三:使用sql语句,直接删除出现重复的数据

23. 在jsp页面与数据库连接后,执行sql语句时注意:执行update、insert、delete语句,不返回结果集(select查询时返回结果集)。可以使用ResultSet对象,但不能使用rs.next()方法,因为不返回结果集。
建议:当执行数据操作(如更新、插入、删除)语句时,也可以定义PreparedStatement对象ps,使用ps = con.prepareStatement(sel);该语句执行sql语句sel,并使用ps.executeUpdate();语句进行更新,该语句必须要有。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值