1. 程式人生 > >JSP前臺獲取使用後臺生成的json

JSP前臺獲取使用後臺生成的json

前言

想想平安夜還在擼程式碼,看開了。一入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資料返回到前臺,前臺在需要使用的地方使用這個資料。這樣完成了一個完整的業務過程。

最後幾句話

現在也是小白的渣渣水平,堅持吧。自己寫了一篇轉載的博文,有人評論道:感謝。證明我寫的東西還是有價值的。博文有什麼不足之處,謝謝大牛們指出。共同交流,共同進步。