<!--
@@
@@ <step1>
@@ 文件: E:\work\Tomcat\conf\server.xml
@@ 描述: 添加用户的应用, 并且设置其为默认加载,即在浏览器地址栏输入localhost:8080,
@@ 则跳入用户应用.用户工程根目录位于:E:\work\Tomcat\webapps\myapp, 需要在
@@ server.xml文件的<Host></Host>标签中,加入用户应用. ../webapps/myapp实质上
@@ 相对于server.xml文件来说,就是E:\work\Tomcat\webapps\myapp
@@
-->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<!--(begin) user application-->
<Context path="" docBase="../webapps/myapp" debug="0" reloadable="true"/>
<!--(end) user application-->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<!--
@@
@@ <step2>
@@ 文件: E:\work\Tomcat\webapps\myapp\index.jsp
@@ 描述: 用户应用的欢迎界面,即在浏览器地址栏输入localhost:8080,则跳入直接跳入该页面.
@@
-->
<html>
<head>
<TITLE>hello world</TITLE>
</head>
<!-- (begin)用于测试Ajax -->
<script type="text/javascript">
var xmlHttpRequest = null; //声明一个空的对象以接受XMLHttpRequest对象
function ajaxRequest() {
if(window.ActiveXObject) { //IE的
xmlHttpRequest = new ActionXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest) { //除IE外的
xmlHttpRequest = new XMLHttpRequest();
}
if(xmlHttpRequest != null) {
xmlHttpRequest.open("GET", "AjaxServlet", true);
//关联好ajax的回调函数
xmlHttpRequest.onreadystatechange = ajaxCall;
// 设置参数, 把"mode"加入http请求头, 其值为"CONFIG"
xmlHttpRequest.setRequestHeader("mode", "CONFIG");
//真正向服务器发送请求
xmlHttpRequest.send();
}
}
function ajaxCall() {
if(xmlHttpRequest.readyState == 4 ) { //完全得到服务器的响应
if(xmlHttpRequest.status == 200) { //没有异常
var text = xmlHttpRequest.responseText;
document.getElementById("id1").value = text;
}
}
}
</script>
<!-- (end)用于测试Ajax -->
<body>
<!-- (begin)用于测试欢迎界面 -->
<!--
-- 进入欢迎界面后, 系统当前时间显示,如:Now time is: Mon Oct 21 18:00:06 CST 2013
-->
<center>
Now time is: <%=new java.util.Date()%>
</center>
<!-- (end)用于测试欢迎界面 -->
<!-- (begin)用于测试Ajax -->
<!--
--点击按钮"button"之后, 页面向后台发送Ajax请求, 后台回应信息后, 在id1输入框中显示
-->
<input type="button" value="button" οnclick="ajaxRequest();">
<input type="text" id="id1">
<!-- (end)用于测试Ajax -->
</body>
</html>
/*
* Description:
* Servlet for ajax, This servlet will parse the input string for web browser(http exchange),
* get the input parameters, and then execute the related function with the parsed parameter.
* Finally, sent the executed result to the web browser.
*
* Author: lihan@mtncn.com
*
* Attention:
* 1) when the parameter carried by the url such as:
* $(document).ready(function() {
* $("#_submit").click(function() {
* var user_name = $("#_user_name").val();
* var user_pwd = $("#_user_pwd").val();
* $.ajax({
* url: "login/validate",
* data: { userName: user_name, password: user_pwd },
* type: "GET",
* datatype: "html",
* success: function(data){
* alert(data.length);
* }
* });
* });
* })
*
* in the servlet, we get userName and password by : req.getParameter("mode");
*
* 2) when the parameter carried by the http request header such as:
* function ajaxRequest() {
* if(window.ActiveXObject) { //IE
* xmlHttpRequest = new ActionXObject("Microsoft.XMLHTTP");
* }
* else if(window.XMLHttpRequest) { //others
* xmlHttpRequest = new XMLHttpRequest();
* }
* if(xmlHttpRequest != null) {
* xmlHttpRequest.open("GET", "AjaxServlet", true);
*
* xmlHttpRequest.onreadystatechange = ajaxCall;
*
* xmlHttpRequest.setRequestHeader("mode", "CONFIG");
*
* xmlHttpRequest.send();
* }
* }
*
* in the servlet, we get mode by : req.getHeader("mode");
*/
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AjaxServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String mode = req.getHeader("mode");
parsePara(req);
PrintWriter out = resp.getWriter();
out.println(mode);
out.flush();
}
private void parsePara(HttpServletRequest req) {
Enumeration<String> e = req.getHeaderNames();
for (; e.hasMoreElements();) {
System.out.println(e.nextElement());
}
}
}
<!--
@@
@@ 文件: E:\work\Tomcat\webapps\myapp\WEB-INF\web.xml
@@ 描述:
@@ 1) <url-pattern>/AjaxServlet</url-pattern> -- 以url中含有字符串"/AjaxServlet"
@@ 则认定为Ajax请求
@@ 2) <servlet-class>AjaxServlet</servlet-class> -- Ajax服务端的servlet为:
@@ AjaxServlet.class, 由AjaxServlet.java编译得到
@@
-->
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
<display-name>Hello World</display-name>
<description>
Welcome to myapp
</description>
<!--
<servlet>
<servlet-name>Test</servlet-name>
<display-name>Test</display-name>
<description>A test Servlet</description>
<servlet-class>com.main.MainLoopService</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
-->
<!--(begin) sevelet for ajax-->
<!--
-- /AjaxServlet对应于E:\work\Tomcat\webapps\myapp\index.jsp文件中
-- xmlHttpRequest.open("GET", "AjaxServlet", true);
-->
<!--
<servlet-class>AjaxServlet</servlet-class> 类名对应servlet文件
AjaxServlet.java
-->
<servlet>
<servlet-name>AjaxServlet</servlet-name>
<display-name>AjaxServlet</display-name>
<servlet-class>AjaxServlet</servlet-class>
</servlet>
<!--
-- /AjaxServlet对应于E:\work\Tomcat\webapps\myapp\index.jsp文件中
-- xmlHttpRequest.open("GET", "AjaxServlet", true);
-->
<servlet-mapping>
<servlet-name>AjaxServlet</servlet-name>
<url-pattern>/AjaxServlet</url-pattern>
</servlet-mapping>
<!--(end) sevelet for ajax-->
</web-app>