servlet为什么不执行?

kkliuqi 2011-05-05 07:12:22
Jsp页面:
<form id="photoForm" action="PhotoServlet?method=0" enctype="multipart/form-data" method="post" onsubmit="return subPhotoFrom()">
<table>
<tr><td colspan="2" align="center">相片上传</td></tr>
<tr>
<td>上传地址:</td>
<td><input type="file" name="imageAddress" id="imageAddress"></td>
</tr>
<tr>
<td>相片描叙:</td>
<td><input type="text" maxlength="100" name="photoDescription" id="photoDescription"/></td>
</tr>
<tr>
<td colspan="2">注意:图片格式只能为:"JPG","jpg","GIF","gif","BMP","bmp"</td>
</tr>
<tr>
<td align="right"><input type="submit" value="添加"/></td>
<td align="center"><input type="button" value="取消" onClick="hideForm('photoAdd')"/></td>
</tr>
</table>
</form>


Servlet:
int method = Integer.valueOf(request.getParameter("method"));
PhotoDao photoDao = new PhotoDao();
PhotoForm photoForm = new PhotoForm();
System.out.println(method);
//上传相片
if(method==0)
{
try {
SmartUpload upload = new SmartUpload();
upload.initialize(getServletConfig(), request, response);
upload.setMaxFileSize(1024 * 1024);
upload.setAllowedFilesList("jpg,bmp,gif,png,JPG,GIF,BMP");
upload.upload();

upload.save(request.getContextPath()+"/photo");
System.out.println(request.getContextPath()+"/photo"+upload.getFileNames()[0]);

photoForm.setPhotoAddress(upload.getFileNames()[0]);
photoForm.setPhotoDescription(Chinese.toChinese(request.getParameter("photoDescription")));
} catch (Exception e) {
System.out.println("上传出错!");
e.printStackTrace();
}
}

为什么页面跳转到servlet就没反应了?我的打印语句都没有执行,post提交的,在post里调用的这个get方法,不存在问题的,起初以为是图片上传的问题所以看不到效果,加上了打印语句结果控制台都没显示,post方法里的也没有执行。很显然是servlet没有执行了,为什么啦?救命。。。。


...全文
955 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
kkliuqi 2011-05-16
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 strive20101101 的回复:]
引用 7 楼 liutianxiong888 的回复:
action="PhotoServlet?method=0"
貌似传到Servlet里,后面不能加参数吧?

PhotoServlet确定和你web.xml配的一样?
我还是怀疑后面不能加传数,你可以采用
<input type="hidden" name="method" value="0" />
你在Servlet中用req……
[/Quote]
正解来了,实属怪异现象,几天没动这项目,这几天一开做,post又提交上去了。实在是太怪异了,是不是tomcat又抽了。结贴。哈哈
Strive20101101 2011-05-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 liutianxiong888 的回复:]
action="PhotoServlet?method=0"
貌似传到Servlet里,后面不能加参数吧?

PhotoServlet确定和你web.xml配的一样?
我还是怀疑后面不能加传数,你可以采用
<input type="hidden" name="method" value="0" />
你在Servlet中用request也获取不到表单提交的值。
你要用SmartUpl……
[/Quote]

谁说跳转至servlet的url后面不能带参数?
楼主这个问题不好说,代码貌似没问题,servlet配置应该也没问题,如果web.xml的servlet的配置及映射如果有问题的话会报错的,进入servlet没反应,难道是因为你的提交方式是post,你将servlet的代码写进了doGet方法中了?还是因为你url后的参数method是关键字的原因?
shuhuiguo0915 2011-05-14
  • 打赏
  • 举报
回复
我也有碰到这问题,不过是改成post没问题了,这问题很怪异,求解
kkliuqi 2011-05-14
  • 打赏
  • 举报
回复
问题发现了,提交方式我这里的是Post提交的,当我改成get后servlet就执行了!!!不过执行会出错,取到的参数不对了,servlet处理时会报错!求解释!谁能留个QQ给我?我把项目发给他看看,太怪异的问题了。
kkliuqi 2011-05-13
  • 打赏
  • 举报
回复
我有配置servlet啊。哎,都说有配置servlet了
<servlet>
<servlet-name>PhotoServlet</servlet-name>
<servlet-class>com.wy.webiter.PhotoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PhotoServlet</servlet-name>
<url-pattern>/PhotoServlet</url-pattern>
</servlet-mapping>
这不就配置了?
试过了,servlet只会跳转过去,但是不会执行。
234234orz 2011-05-12
  • 打赏
  • 举报
回复
servlet刚开始处打印一下这个看看能否打印出来
System.out.println(request.getParameter("method"));
顾燕良Simmaker 2011-05-12
  • 打赏
  • 举报
回复
打印method看看
meteor1015 2011-05-12
  • 打赏
  • 举报
回复

servlet刚开始处打印一下这个看看能否打印出来
System.out.println(request.getParameter("method"));
zhanghua4109 2011-05-12
  • 打赏
  • 举报
回复
DEBUG下,跟踪一下。
niuniu_hsit 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wgw335363240 的回复:]
servlet需要配置在应用的web.xml中,只有在web.xml中配置了的servlet才会执行,而且每个servlet都有servlet-mapping,这个是匹配这个servlet能够拦截哪些请求并执行的。给你个例子:
<servlet>
<servlet-name>controller</servlet-name>
<servlet-class>com.ServiceControl……
[/Quote]
哈,servlet步骤哈!需要在web。xml配置文件才能找到要调用的类
kkliuqi 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 liutianxiong888 的回复:]
action="PhotoServlet?method=0"
貌似传到Servlet里,后面不能加参数吧?

PhotoServlet确定和你web.xml配的一样?
我还是怀疑后面不能加传数,你可以采用
<input type="hidden" name="method" value="0" />
你在Servlet中用request也获取不到表单提交的值。
你要用SmartUpl……
[/Quote]
servlet可以带参数的。绝对的
kkliuqi 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wangluoxiaozilong 的回复:]
应该是路径问题吧!
[/Quote]
路径问题就会报找不到文件,你说路径问题它怎么还正确跳转了?
kkliuqi 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 geningaixin 的回复:]
正解来了:如果确实进了servlet而没有执行的话 只有一种可能啊,出现异常,没有采取捕获机制,让系统自动隐藏了。
[/Quote]
还是信这个
geningaixin 2011-05-09
  • 打赏
  • 举报
回复
正解来了:如果确实进了servlet而没有执行的话 只有一种可能啊,出现异常,没有采取捕获机制,让系统自动隐藏了。
Spring89 2011-05-05
  • 打赏
  • 举报
回复
action="PhotoServlet?method=0"
貌似传到Servlet里,后面不能加参数吧?

PhotoServlet确定和你web.xml配的一样?
我还是怀疑后面不能加传数,你可以采用
<input type="hidden" name="method" value="0" />
你在Servlet中用request也获取不到表单提交的值。
你要用SmartUpload对象提供的request才能获取。
com.jspsmart.upload.Request req = upload.getRequest();
小子龙 2011-05-05
  • 打赏
  • 举报
回复
应该是路径问题吧!
小子龙 2011-05-05
  • 打赏
  • 举报
回复
servlet没执行,那就是没有调用它,如果调用了,没有理由不执行。
kkliuqi 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ghtcool1207 的回复:]
除了上边的再看看web.xml中配置中的的servlet路径,物理路径和逻辑路径一般不同,你看好再配置一下!
[/Quote]
这些都是工具自动生成的,问题不是找不到这个servlet,而是找到了不执行。不是配置路径的问题!
ghtcool1207 2011-05-05
  • 打赏
  • 举报
回复
除了上边的再看看web.xml中配置中的的servlet路径,物理路径和逻辑路径一般不同,你看好再配置一下!
kkliuqi 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wgw335363240 的回复:]
servlet需要配置在应用的web.xml中,只有在web.xml中配置了的servlet才会执行,而且每个servlet都有servlet-mapping,这个是匹配这个servlet能够拦截哪些请求并执行的。给你个例子:
<servlet>
<servlet-name>controller</servlet-name>
<servlet-class>com.ServiceControl……
[/Quote]
我有配置这个servlet,不然我的表单都不可能跳转到那边去,找不到这个servlet会报错,不过它没有错误,就是没反应
加载更多回复(1)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧