JDBC---Javaweb过程中的问题及解决方案

来源:互联网 发布:linux 启动oracle进程 编辑:程序博客网 时间:2024/05/21 14:09

为数据库表user插入数据时(id列为自增长型整数):错误抛出(仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'users'中的标识列指定显式值。)

执行以下SQL语句:

    --先打开IDENTITY_INSERT      set IDENTITY_INSERT login ON      --添加数据      insert into login(userId,username,passwd,email,authority) values(123,'xiaoming', 'xiaoming', 'xiaoming@gmail.com',5)      --关闭IDENTITY_INSERT      set IDENTITY_INSERT login OFF  
如果插入值大于表的当前标识值,则 SQL Server 自动将新插入值作为当前标识值使用SET IDENTITY_INSERT 的设置是在执行或运行时设置,而不是在分析时设置。

另外:鉴于jdbc操作,可以直接在表明后面指定要添加的列名,忽略掉自增长列,也是可以的。

jsp页面中的文本框的值在servle中通过String name=requst.getParameter("name")中读取后乱码----->未设置request 的字符编码

数据库中明明存在的值为何在jsp页面查找不了?-------->考虑字符编码问题

1.request.setCharacterEncoding("utf-8"):设置从request中取得的值或从数据库中取出的值

指定后可以通过getParameter()则直接获得正确的字符串,如果不指定,则默认使用iso8859-1编码。值得注意的是在执行setCharacterEncoding()之前,不能执行任何getParameter()。因为在执行第一个getParameter()的时候,java将会按照编码分析所有的提交内容,而后续的getParameter()不再进行分析,所以setCharacterEncoding()无效。而且,该指定只对POST方法有效,对GET方法无效。而对于GET方法提交表单是,提交的内容在URL中,一开始就已经按照编码分析提交内容,setCharacterEncoding()自然就无效。

get需在Tomcat的server.xml中的:<Connector URIEncoding="UTF-8" />,可解决get请求乱码问题。

2.response.setContentType("text/html;charset=utf-8")

前者是设置动态文字(参数,数据库),后者设置页面静态文字 
response.setContentType指定 HTTP 响应的编码,同时指定了浏览器显示的编码. 
response.setCharacterEncoding设置HTTP 响应的编码,如果之前使用response.setContentType设置了编码格式,则使用response.setCharacterEncoding指定的编码格式覆盖之前的设置.与response.setContentType相同的是,调用此方法,必须在getWriter执行之前或者response被提交之前。

request.setCharacterEncoding("utf-8")这个是当你从页面取值时要设置,比如servlet里获取取页面姓名(name),你就得先设置request的字符,假如你的数据是从数据库里取的,通过servlet传到页面,你就得设置response的字符集,前提是你是页面也是utf-8,如果你怕错可以把这个2个设置放在方法里的最高位子上就ok了。
jsp页面的上设置字符编码

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>

设置服务器发送给客户端时的内容编码

<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>,这只是设定jsp文件本身的编码,客户端接收到的是什么就不得而知了。

html页面的字符编码设置:

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

网页出现错误:HTTP Status 405 - HTTP method GET is not supported by this URL

出错原因是doPost方法用于处理前台提交的数据,当form表单属性method="post"时,doPost方法才被调用。当用servlet类的URL直接访问servlet时,发送的是HTTP请求,servlet默认调用doGet()方法,而源程序里没有重写父类的doGet()方法,父类的doGet()方法不被此种URL支持,所以出现HTTPmethod GET is not supported by this URL这种错误。

The requested resource is not available的解决办法

HTTP Status 404(The requested resource is not available)异常主要是路径错误或拼写错误造成的,参考链接:

http://www.jianshu.com/p/e3256211df43  点击打开链接

我自己的项目是存在多个jsp文件,当测试第二个jsp文件的时候出现此异常,尝试了一下方法,问题解决:

Page directive must not have multiple occurrences of pageencoding

出错原因:不能指定多个pageEncoding。在jsp文件中看在导入类或其他文件的时候是否重复指定了pageEncoding的值(两次指定相同的值也不可以)

运用到jQuery的ajax方法时候,明明相同的值却比较为false:jQuery中,对表单输入的值加入trim方法,再进行比较