您的位置:首页 > Web前端 > JavaScript

JSP前台获取使用后台生成的json

2016-12-24 23:51 429 查看

前言

想想平安夜还在撸代码,看开了。一入IT深如海,从此红尘是路人。考试结束了,坐等结果,可以好好搞波事了。考完的两天,完全是看美剧中。一时间不知道该做什么了,无聊的时候还好有美剧。实在不想看美剧,就开始看看js,有段时间没有看了,脑海一片空白,忙于考试,忙于背各种考试的概念,好些东西都忘了。确实,撸代码需要坚持,养成一个良好的习惯是非常重要的。

正题

首先jsp表单,书写并没有难度。

<form id="Form" action="${CTX_PATH}/home/doctors" method="POST" target="json">


强调一点,这里使用jsp中的核心servlet,action 中的URL与web.xml中的书写的必须保持一致。至于web.xml的书写,可以参考一下范例。

<servlet>
<servlet-name>doctorServlet</servlet-name>
<servlet-class>com.west.modules.home.DoctorController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>doctorServlet</servlet-name>
<url-pattern>/home/doctors</url-pattern>
</servlet-mapping>


servlet中的doPost方法。

这里的方法取决于表单的传递方式get或者post,两者的区别,初学者可以这样理解,post在浏览器地址栏是无法看到某些传递的内容的,但是get可以。不过post用的比较多吧,或许因为这个原因吧。网上有一些详细的资料讲的比较清楚,这里并不将这个作为重点。

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
Map<String, String> map = new HashMap<String, String>();
map.put("name",name);
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss")
.disableHtmlEscaping().create();
String json = gson.toJson(map);
out.print("<script type=\"text/javascript\">var json="+json+"; parent.render("+json+")</script>");
out.print(json);
out.flush();
out.close();


前台页面的部分代码

<input id="sub" type="submit" value="Submit"  onclick="myFunction()" />


<iframe style="width:0px;height:0px;border:0;" name="json"></iframe>
<div style="padding:10px; border:1px solid #c0c0c0;" id="result">
<p>
姓名: <input type="text" id="myText" value="">
</p>
</div>


js部分

<script type="text/javascript">
var name;
function render(json){
name=JSON.stringify(json.name);
}
function myFunction() {
var b=name.length-1;
a=name.substring(1,b);
document.getElementById("myText").value =a;
}
</script>


代码部分就这样。前台的表单将提交的内容传递到后台处理,然后后台生成一个json数据返回到前台,前台在需要使用的地方使用这个数据。这样完成了一个完整的业务过程。

最后几句话

现在也是小白的渣渣水平,坚持吧。自己写了一篇转载的博文,有人评论道:感谢。证明我写的东西还是有价值的。博文有什么不足之处,谢谢大牛们指出。共同交流,共同进步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐