JSP前臺獲取使用後臺生成的json
阿新 • • 發佈:2019-01-05
前言
想想平安夜還在擼程式碼,看開了。一入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資料返回到前臺,前臺在需要使用的地方使用這個資料。這樣完成了一個完整的業務過程。
最後幾句話
現在也是小白的渣渣水平,堅持吧。自己寫了一篇轉載的博文,有人評論道:感謝。證明我寫的東西還是有價值的。博文有什麼不足之處,謝謝大牛們指出。共同交流,共同進步。