这几天刚开始学写javaweb,期间遇到了各种问题,花了一两个星期的时间总算才刚刚摸清点头绪。深夜,闲来无事,总结一下最近遇到的问题和解决方法。
下面的代码有些无关紧要的部分可以忽略,这里不做详细解释。
1.提交form表单到servlet,servlet处理后跳转至指定页面显示结果
该问题非常好理解。
首先在index.jsp中提交form表单:
然后在servlet的doGet方法中处理(处理部分已省去),然后跳转至view.jsp给用户呈现结果。
一个很坑的地方在于,如果你在执行getRequestDispatcher前,输出过多导致缓存满了,将不会跳转至指定url。
另一个坑点在于跳转后只会改变页面的内容,并不会改变页面的路径。
view.jsp:
这里调用后端的值采用的方法是el表达式,使用IDEA可以会报错(无法解析变量xxx),这里不用去管!! 仍然能正确执行结果。
2.提交表单form到servlet,直接通过servlet显示结果
这种方式不需要指定页面跳转,会刷新页面,将结果显示servlet自己的页面中。form表单的写法和上面一样,servlet中用到了response对象,具体的操作如下:
这里我返回的是一个json格式的字符串,myInfo是我自己创建的一个类。
以上都是刷新页面的方式,下面利用Ajax实现不刷新页面来提交表单
废话不多说,先上代码(亲测有效!!)
form表单部分:
js部分代码:
这是利用get方法提交表单,因此可以利用get方法的特性(url后面跟着传参)来给服务器传参。
服务器部分的接收及输出验证:
post方法传参时js部分的写法有所不同,代码如下:
其中setRequestHeader是必要的!!说多了都是泪…
关于Ajax部分的代码内容,如果不太懂,可以到菜鸟教程进行学习,指路链接戳这