Servlet方法中的常用五大方法淺析
這五大Servlet方法都是功能比較強(qiáng)大的。相信對(duì)于WEB設(shè)計(jì)來(lái)說(shuō)有一定的幫助。不要一個(gè)一個(gè)方法的試驗(yàn),等看完所有的內(nèi)容,然后一起運(yùn)用這些方法并結(jié)合以前的workshop來(lái)做個(gè)小程序。
◆parseTextMessage()方法
在這個(gè)例子里:定義了一個(gè)數(shù)據(jù)接受類。parseTextMessage()方法接受了一組從表單傳送過(guò)來(lái)的對(duì)象以及他們的值。我們?cè)谧鲆恍┊a(chǎn)品開(kāi)發(fā)的時(shí)候,比如自定義表單,往往不知道傳送過(guò)來(lái)有多少對(duì)象,對(duì)于這樣的問(wèn)題,程序是無(wú)法知道的,用了這個(gè)方法后,就可以報(bào)所有的對(duì)象一下子都拿到了。下面看一下這個(gè)例子:
- private void parseTextMessage(HttpServletRequest request){
- Enumeration names; // 列舉client傳送過(guò)來(lái)的所有的對(duì)象
- String name; /
- String[] value; //
- // 接受所有的對(duì)象
- names = request.getParameterNames();
- while (names.hasMoreElements()) {
- //得到對(duì)象名稱
- name = (String)names.nextElement();
- //根據(jù)對(duì)象名稱重新找到對(duì)象的值
- value = request.getParameterValues(name);
- // 把對(duì)象名稱和值放到一個(gè)類中,這個(gè)類的代碼在前面的練習(xí)中有
- put(name, value);
- }
- // 獲取一個(gè)page的ID,為什么要設(shè)置page id,在java規(guī)則中有
- pageID = getPostPageID();
- // 獲取事務(wù)id,如果有事務(wù)的話
- trxID = getPostTrxID();
- }
◆getJSPBeanInSession()方法
這是一個(gè)I/O管理類。這個(gè)方法根據(jù)page的id來(lái)從session中返回jsp的數(shù)據(jù),如果用getSession(true).getAttribute(pageID) 也是對(duì)的。
- private JPC_JSPBean getJSPBeanInSession(String pageID) {
- 據(jù)頁(yè)的id來(lái)從session中返回jsp的數(shù)據(jù)
- return (JPC_JSPBean)request.getSession().getAttribute(pageID);
- }
◆dispatchTransaction()方法
這個(gè)方法得到一組類的實(shí)例,然后開(kāi)始事務(wù)處理。
- public void dispatchTransaction() {
- JPC_Transaction trx = null;
- String classList[] = getTrxClassList(getTrxID());
- try {
- for (int i = 0; i < classList.length; i++) {
- trx = (JPC_Transaction)Class.forName(classList[i]).newInstance();
- if (trx != null) {
- trx.setIOManager(this);
- trx.start();
- }
- }
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (InstantiationException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- }
- }
◆putJSPBeanInSession()方法
把jsp的數(shù)據(jù)類和一個(gè)jsp頁(yè)面的ID放到 session中。
- private void putJSPBeanInSession(String pageID, JPC_JSPBean jspBean) {
- //把jsp的數(shù)據(jù)類和一個(gè)jsp頁(yè)面的ID放到 session中。
- request.getSession().setAttribute(pageID, jspBean);
- }
◆sendPage()方法
- private void sendPage(String pageID, JPC_JSPBean outJSPBean) {
- // 把頁(yè)面id和數(shù)據(jù)存儲(chǔ)到 session 中
- if (outJSPBean != null) {
- putJSPBeanInSession(pageID, outJSPBean);
- }
- // 根據(jù)文件id來(lái)取得文件數(shù)據(jù)
- String jspFileName = getJSPFileName(pageID);
- //根據(jù)jsp文件名來(lái)得到一個(gè)RequestDispatcher
- RequestDispatcher rd = context.getRequestDispatcher(jspFileName);
- if (rd != null) {
- try {
- //調(diào)用jsp
- rd.forward(request, response);
- } catch (ServletException e) {
- } catch (IOException e) {
- }
- }
- }
Servlet方法的使用要在實(shí)踐操作中多多積累,慢慢總結(jié),希望你早日熟練Servlet方法的使用。
【編輯推薦】