ajax serlvet示例

本文介绍了一个简单的AJAX示例,展示了如何从前端调用后端Servlet,并通过XMLHttpRequest对象获取返回的数据。此外,还介绍了如何从前端解析JSON数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前台:
<script type="text/javascript" language="javascript">
  var xml;
  function createXml(){
  if(window.XMLHttpRequest){
  xml=new XMLHttpRequest();
  }else if(window.ActionXObject){
  xml=new ActionXObject("Microsoft.XMLHTTP");
  }
  }
  function test(){
  createXml();
  var name="xcl";
  var url="testServlet.do?name="+name;
  xml.open("GET",url);
  xml.onreadystatechange=callback;
  xml.send(null);
  }
  function callback(){
  if(xml.readyState==4&&xml.status==200){
  //alert("1111");
  var name=xml.responseText;
  alert(name);
  }
  }
  </script>


配置文件:
<servlet>
  <servlet-name>test</servlet-name>
  <servlet-class>com.servlet.UserServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>test</servlet-name>
  <url-pattern>/testServlet.do</url-pattern>
  </servlet-mapping>


后台:


public class UserServlet extends HttpServlet{


@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
//super.doGet(req, resp);
String name=req.getParameter("name");
name=name+"---return;sky";
PrintWriter out=resp.getWriter();
out.print(name);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
//super.doPost(req, resp);
this.doGet(req, resp);
}
}




2通过后台直接传json对象,前台也可以通过responseText来得到,
如:if(xml.readyState==4&&xml.status==200){
  //alert("1111");
  var name=xml.responseText;
  //var name1={a:'a1'};
  //var jsonObject2=JSON.stringify(eval("("+name+")"));
  //alert(jsonObject2.a);
  //alert(name);
  var jsonObject1=eval("("+name+")");
 
  alert(jsonObject1.a+"---"+jsonObject1.b+"----"+jsonObject1.c);
  var jsonObject3=JSON.stringify(jsonObject1);
  alert(jsonObject3);
  }
后台:
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
//super.doGet(req, resp);
String name=req.getParameter("name");
name=name+"---return;sky";
String json="{a:'a1',b:'b1',c:'c1'}";
JSONObject jsonObject=JSONObject.fromObject(json);

PrintWriter out=resp.getWriter();
out.print(jsonObject);
}



### JavaEE 中 Servlet 的基本原理 Servlet 是 JavaEE 平台中的核心技术之一,用于处理客户端请求并返回响应。它运行于服务器端,通常由容器管理其生命周期。以下是关于 Servlet 的核心概念及其工作方式: #### 1. **Servlet 的定义** Servlet 是一种基于 Java 技术的组件,能够扩展 Web 应用的功能[^1]。通过继承 `javax.servlet.HttpServlet` 类或者实现 `javax.servlet.Servlet` 接口来创建自定义的 Servlet。 #### 2. **Servlet 生命周期** Servlet 的生命周期分为三个阶段:初始化、服务和销毁。 - 初始化:当第一个请求到达时,容器会调用 `init()` 方法完成初始化操作。 - 服务:每次接收到 HTTP 请求时,容器都会调用 `service()` 方法,并根据请求类型进一步调用 `doGet()` 或 `doPost()` 等方法。 - 销毁:当应用关闭或重新部署时,容器会调用 `destroy()` 方法释放资源。 #### 3. **URL 映射** 通过注解 `@WebServlet` 可以指定 URL 路径映射到特定的 Servlet 实现类上。例如,在引用中展示了如何将根路径 `/` 映射至 `ServletDemo11` 类。 ```java @WebServlet(urlPatterns = "/") public class ServletDemo11 extends MyHttpServlet { @Override protected void doGet(ServletRequest req, ServletResponse res) { System.out.println("demo11 get..."); } } ``` #### 4. **视图解析器的作用** 在实际项目中,除了简单的控制层逻辑外,还需要渲染页面给用户查看。为此可以借助 Spring MVC 提供的视图解析器机制自动拼接前缀与后缀生成最终 JSP 文件地址[^2]。 ```xml <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> ``` 以上 XML 配置表明任何控制器返回字符串均会被解释成对应物理位置下的 `.jsp` 页面文件名。 #### 5. **框架的意义** 为了简化复杂度以及提升效率,现代 JAVAEE 开发往往依赖成熟的开源框架如 Spring 家族成员(Spring/Spring Boot),它们封装了许多通用需求使得开发者只需关注具体业务流程即可快速构建高质量的应用程序[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值