发表于: 2017-10-12 23:07:31

1 702


今天完成的事情:调整了代码  服务端直接使用主函数 打jar包运行 

                           客户端 是使用web容器开启

                            基本还是昨天的配置 xml

                         这次试了一下servlet来写一个简单的demo

起始页写了一个超链接 跳转到 update下面的html页面

<br>
<a href="update">我跳</a>
<br>

这个页面 输入数据作为入参

<body>
<h1 align="center">请输入要计算的a b</h1>
<form method="post" action="/add">
   请输a
<input name="a"type="number">  <br>
   <br>
   请输b
<input name="b" type="number">
   <br/>
   <br/>
   <input align="center" type="submit">
</form>
</body>
</html>

然后就是点击提交  根据设置的post  /add

web.xml里面写上

<!--内部映射名,内部映射servlet-->
<servlet>
 <servlet-name>test</servlet-name>
 <servlet-class>com.jnshu.controller.rmiClient</servlet-class>
</servlet>
<!--公共映射名,提供给用户使用的URL名/getUser,使用内部名来进行映射,通过内部名的映射对象即可查找servlet-->
<servlet-mapping>
 <servlet-name>test</servlet-name>
 <url-pattern>/add</url-pattern>
</servlet-mapping>

整体结构 

rmiClient里面要继承httpServlet

不过我这里为了方便增加 新建了一个baseServlet来继承httpservlet 然后rmiClient再继承这个baseServlet

package com.jnshu;

import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

public class BaseServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

   public void init() throws ServletException {
super.init();
       WebApplicationContextUtils
.getWebApplicationContext(getServletContext())
.getAutowireCapableBeanFactory().autowireBean(this);
   }

}


再看rmiClient

 @Autowired
private HelloRMIService helloRMIService;

注意在原来的Spring的xml文件里面 开启注解扫描

 protected void doPost(HttpServletRequest requset, HttpServletResponse response)  throws ServletException, IOException {
       a=requset.getParameter("a");
       b=requset.getParameter("b");
       int q = Integer.parseInt(a);
       int w = Integer.parseInt(b);
       int i=helloRMIService.getAdd(q,w);
            response.getWriter().write(i);
       System.out.println(i);
       response.setContentType("text/html");
          PrintWriter out = response.getWriter();
            out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
         out.println("<HTML>");
             out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
         out.println("  <BODY>");
             out.print("    This is ");
           out.print(this.getClass());

            out.println(", using the GET method");
            out.print("pipikai ="+i);
            out.println("  </BODY>");
//        out.println(  helloRMIService.getAdd(requset,requset));
           out.println("</HTML>");
             out.flush();
            out.close();
   }

这里一般都要重写doget或者doPost方法

用getParameter获取请求的参数  Integer.parseInt转化成int

注意一定要使用使用同样的接口 必须完全一致 

使用里面的get.add方法 就能通过rmi调取服务端的接口实现

再把获得的数据 返回 到页面上 打印出来

原有的报名系统拆分了一下 

明天计划的事情:拆分完毕原有的web
遇到的问题:一直用的springmvc 改用servlet有点不适应

                多百度一下 问题都能解决 

收获:学习到了servlet的一些用法  

任务开始时间10.11

         预计完成时间:10.14

         是否有延期风险:暂无

禅道链接:http://task.ptteng.com/zentao/my-task.htm



返回列表 返回列表
评论

    分享到