Java Web开发实战中的Register的例子
发表在JavaWeb图书答疑 2014-12-08
是否精华
版块置顶:
运行时就是跳出“出错了”的框,注册中城市不出现。在Tomcat8.0,Java EE 版本是Luna Release(4.4.0)下运行,以下是出错提示,求解
Servlet.service() for servlet [com.wgh.servlet.User] in context with path [/register] threw exception
java.lang.NullPointerException
at com.wgh.servlet.User.getCity(User.java:173)
at com.wgh.servlet.User.doPost(User.java:57)
at com.wgh.servlet.User.doGet(User.java:252)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:655)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

分享到:
精彩评论 11
无语_mrkj
学分:3155 LV11
2014-12-08
沙发
可能是数据库没有连接成功,您确定一下MySQL数据库的登录用户root的密码是否为111,并且正确附加了数据库。
xvxvnmnm
学分:228 LV4
TA的每日心情
为啥不能看
2020-03-27 11:04:23
2014-12-08
板凳
数据库登录成功,有显示,可以插入数据了,这个是连接MYSQL数据库的,但为何在CityMap有这样的代码,
public static void main(String[] args) {
 Connection conn = null;
 try { //连接数据库时可能发生异常因此需要捕捉该异常
String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
 Class.forName(driver).newInstance(); //装载数据库驱动
//建立与数据库URL中定义的数据库的连接
//String url="jdbc:sqlserver://mrwxk\\mrwxk;DatabaseName=db_LibraryMS";
 //String url="jdbc:sqlserver://192.168.1.122:1433;DatabaseName=master";
 //String url="jdbc:sqlserver://SK\\SQLEXPRESS;DatabaseName=master";
 String url="jdbc:sqlserver://MRWY\\BROTHER;DatabaseName=db_database15";
 conn = DriverManager.getConnection(url,"sa","111");
 } catch (Exception ee) {
 ee.printStackTrace(); //输出异常信息
}
 }
原文照样复制,未做更改。这不是连接SQL数据库的吗????
无语_mrkj
学分:3155 LV11
2014-12-09
地板
这个程序用的是MySQL数据库,没有用SQL Srever数据库,您发上来的那段代码在程序中没有使用,它是当是测试用的,用后忘记删除了。
另外,您说的数据库登录成功了,是不是指通过数据库的图形化界面登录成功,或者是在MySQL 命令行窗口中登录成功了,如果是这样,那么 还需要确认一下您的MySQL的登录用户是root,密码是111吗?
xvxvnmnm
学分:228 LV4
TA的每日心情
为啥不能看
2020-03-27 11:04:23
2014-12-09
4L
还有中文乱码问题,可以一并处理吗。
response.setCharacterEncoding("UTF-8"); //设置响应的编码
String username=new String(request.getParameter("username").getBytes("ISO-8859-1"),"GBK");
System.out.println("用户名:"+username);
输入中文时呈?号
无语_mrkj
学分:3155 LV11
2014-12-09
5L
对于这个实例出现的“出错了”的解决方法是您需要进行以下修改。
(1)打开index.jsp文件,找到JS中的getCity(selProvince)这个方法,然后把方法体中的
...parProvince="+selProvince+"&nocache....
修改为:
parProvince="+encodeURIComponent(selProvince)+"&nocache
(2)打开User.java文件,找到getCity()方法,然后把其中的
selProvince=new String(selProvince.getBytes("ISO-8859-1"),"GBK");
修改为:
selProvince=new String(selProvince.getBytes(),"GBK");
即可。
同理,检测用户名这里也需要进行同样的设置。
xvxvnmnm
学分:228 LV4
TA的每日心情
为啥不能看
2020-03-27 11:04:23
2014-12-09
6L
...parProvince="+selProvince+"&nocache....
修改为:
parProvince="+encodeURIComponent(selProvince)+"&nocache
 (2)打开User.java文件,找到getCity()方法,然后把其中的
selProvince=new String(selProvince.getBytes("ISO-8859-1"),"GBK");
修改为:
selProvince=new String(selProvince.getBytes(),"GBK");
这个我已经改了。
(同理,检测用户名这里也需要进行同样的设置。)这个我去掉了ISO-8859-1,但还是跳出“出错了“。城市是空白的。
我已登录了MYSQL数据库,可以插入数据了。只是城市下拉框是空白的。
xvxvnmnm
学分:228 LV4
TA的每日心情
为啥不能看
2020-03-27 11:04:23
2014-12-09
7L
认真改了,“出错”是没有了,可选择居住地,没有城市啊。
无语_mrkj
学分:3155 LV11
2014-12-10
8L
那应该还是城市那没改正确,应该是获取到的省份为乱码,所以就取不到相应的市县。
您再查检一下,主要是下面这两处:
(1)打开index.jsp文件,找到JS中的getCity(selProvince)这个方法,然后把方法体中的
...parProvince="+selProvince+"&nocache....
修改为:
parProvince="+encodeURIComponent(selProvince)+"&nocache
(2)打开User.java文件,找到getCity()方法,然后把其中的
selProvince=new String(selProvince.getBytes("ISO-8859-1"),"GBK");
修改为:
selProvince=new String(selProvince.getBytes(),"GBK");
即可。
xvxvnmnm
学分:228 LV4
TA的每日心情
为啥不能看
2020-03-27 11:04:23
2014-12-11
9L
绝对认真改过,城市始终不出来
xvxvnmnm
学分:228 LV4
TA的每日心情
为啥不能看
2020-03-27 11:04:23
2014-12-11
10L
终于处理好,客服亲自调试,水平很高。买明日图书,不担心会有什么BUG,再次感谢。
首页上一页 12 下一页尾页 11 条记录 1/2页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照