突然发现很久没有写博客了,在学习通信阶段是一篇总结都没有写。刚开始学习Java Web,觉得应该把学习的一些总结写下来,以此来记录自己的学习历程。好了,废话少说,下面开始自己Web阶段的第一篇总结,如有不对的地方麻烦各位多多指点。
首先是Java Web应用的概述,Java Web应用程序是指以JSP和Servlet为核心的Java技术开发应用程序,这种应用程序在特定的Web服务器上运行,需要通过Web浏览器的访问。本人写的第一个应用程序就是Servlet接受客户端的参数,可能是刚接触Servlet,对它有很多模糊的地方,胡老师说目前只要知道怎么用它就行了。可是对它还是想稍微有点了解,自己就找了一点资料了解了一下,对它简单的介绍如下:
Servlet是一种运行在Java服务器上的组件,它通过“请求-响应”的模式为浏览器提供服务,在这种模式中,Servlet组件处于被动地位,只有在浏览器向Tomcat服务器发出请求时,Tomcat上的Servlet组件才被触发。如下图是Tomcat服务器和Servlet组件之间的关系:
首先Servlet是一个普通的Java类,此种类通过被Tomcat服务器调用而处理特定的数据,Servlet组件对应的Java类通常要实现特定的接口javax.servlet.Servlet接口,可以调用JDK中的各种类库,入文件的读写,数据库操作等。本人对Servlet的初步了解只作了上面的简单总结,以后有更深入的了解再另行总结,下面是自己写的Servlet接收参数的一些简单的总结:
form表单是浏览器向服务器传递数据的一种基本机制,Servlet接收form参数时要重写doGet或doPost方法可以在form元素的method="get/post"中指定,这两种方法的区别是get方法接收的数据不能大于2KB,而post方法可以是无限大的,不论是get或者post方法,服务器端都可以通过service方法接收,通常情况下,服务器只需要一个service方法即可。好了,先上传自己写的简单代码:
下面是一个login.html文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>蓝杰工作日志系统</title>
</head>
<body>
<form name="loginForm" action=WebTest method="get">
用户名<input type="text" name="userName"/> <p>
密 码<input type="password" name="pwd"/> <p>
性别:<input type="radio" name="sex" value="0"check/>男<input type="radio" name="sex" value="1">女<br/>
简介:<textarea name="intro" rows="5" cols="25"></textarea>
<br>
<input type="Submit" name="action" value="login"/>
<input type="Submit" value="reset" name="action">
</form>
</body>
</html>
效果如下图:
下面是Servlet中service方法:
/**
* 处理客户端的Get方法器请求
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=GBK");//输出中文不乱码
//得到用户发送请求时输入的参数
String userName = request.getParameter("userName");
String pwd = request.getParameter("pwd");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println(" <HEAD><TITLE>蓝杰 servlet 测试</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" 这是 "+this.getClass());
out.println("输出的内容");
out.println(" <br>用户名: "+userName);
out.println(" <br>密 码: "+pwd);
out.println("<hr>");
String action = request.getParameter("action");
out.println("action参数值:"+action);
//登录请求
if (action.equals("login")){
//得到form中的参数
String username = request.getParameter("userName");
String Pwd = request.getParameter("pwd");
//取得配置中的参数
String initName = this.getInitParameter("userName");
String initpwd = this.getInitParameter("pwd");
if (username.equals(initName)&&Pwd.equals(initpwd)){
out.println("你已登陆成功");
}else{
out.println("用户名或密码不正确!");
}
}
else if (action.equals("reset")){
out.println("正在建设中...");
}
else {
out.println("action值未知:"+action);
}
//得到放有请求数据的一个遍历对象
java.util.Enumeration<String> em = request.getHeaderNames();
//取得客户机的地址
String clientAdd = request.getRemoteAddr();
out.println(clientAdd+"客户机请求头数据如下:");
out.println("<hr>");
out.println("<table border=\"1\" width=\"200px\" bgcolor=\"blue\">");
//遍历输出为一个table
while(em.hasMoreElements()){
String headName = em.nextElement();
String headValue = request.getHeader(headName);
out.println("<tr><td>"+headName+"</td>");
out.println(" <td>"+headValue+"</td></tr>");
}
out.println(" </BODY>");
out.println("</HTNL>");
out.flush();
out.close();
}
运行结果如下图所示:
好了,这一次的总结就写到这里,希望以后保持坚持写总结的习惯,在Web这一阶段能有更深入的学习。
- 大小: 7.3 KB
- 大小: 5.2 KB
- 大小: 14.6 KB
分享到:
评论