您的位置:首页 > 编程语言 > Java开发

Javaweb-2 Servlet 创建和配置和参数获取

2016-10-30 21:02 260 查看

Serlvet可以完成将java程序运行到web环境中


Servlet 创建:手动&自动

1)手动创建
new一个web project,添加一个包,里面有一个继承于HttpServlet的类

覆盖doGet方法,再其中添加一些测试程序

通过resp.setContentType("text/html;charset=UTF-8"); 获取了 out

通过out写信息到页面

package itat.zttc.servlet;

import java.io.IOException;
import java.io.PrintWriter;

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

public class HiServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
//super.doGet(req, resp);
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<body><h1>Hello Servlet</h1></body>");
out.println("</html>");
}
}


2)自动创建

课选择需要覆盖的方法,如doGet,doPost

创建完成后Myeclipse会自动写好servlet的java文件和在web.xml中的配置信息

Servlet 配置

配置web.xml让该servlet可以访问

1)创建<servlet>
<servlet>
<servlet-name>XXX</servlet-name>              <span style="white-space:pre">	</span>为该servlet设定名称
<servlet-class>xxx.xxx.xxx.x</servlet-class>  <span style="white-space:pre">	</span>servlet的类,要求加入包路径
</servlet>


  
2)创建<servlet-mapping
<servlet-mapping>
<servlet-name>XXX</servlet-name><span style="white-space:pre">	</span>说明servlet的name
<url-pattern>/xx</url-pattern><span style="white-space:pre">	</span>声明在浏览器中需要访问的地址
</servlet-mapping>


    
resp响应的使用
使用doGet或doPost方法中的resp参数可以向浏览器输出相应的数据
1)设置MIME类型
resp.setContentType("text/html;charset=UTF-8");


2)通过resp获取PrintWriter的输出流,并向浏览器写入数据

<span style="white-space:pre">	</span>PrintWriter out = resp.getWriter();
<span style="white-space:pre">		</span>out.println("<html>");
<span style="white-space:pre">		</span>out.println("<body><h1>Hello Servlet</h1></body>");
<span style="white-space:pre">		</span>out.println("</html>");



获取请求参数

HttpServletRequest可获取参数
中有多种方法,可以获取各种信息 延伸阅读  HttpServletRequest介绍: http://www.cnblogs.com/xdp-gacl/p/3798347.html
public class HiServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
//super.doGet(req, resp);
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("<html><body>");
out.println("<h1>"+req.getContextPath()+"</h1>");//获取上下文路径
out.println("<h3>"+req.getSession().getServletContext().getRealPath("/")+"</h3>");//获取绝对路径
String username = req.getParameter("username");//获取请求参数
String password = req.getParameter("password");
Enumeration<String> enu = req.getParameterNames();//获取参数
while(enu.hasMoreElements()){
out.println(enu.nextElement()+"<br/>");
}
out.println("<h1>"+username+"</h1>");
out.println("<h1>"+password+"</h1>");
out.println("</body></html>");
}
}
该代码实现结果

由问号输入的请求都为get请求

参数也可通过表单来传递

对于username 列

<form action="LoginServlet"method="post" class="form-horizontal" >
<!--提交表单时,发送表单数据到 action属性的文件中 ep:"LoginServlet">
<span style="font-family: Arial, Helvetica, sans-serif;">...</span>
<input type="password" name="password" id="password" class="form-control" placeholder="请输入您的密码" style="width: 142px"/><pre name="code" class="html"><!--type规定input元素类型 <span style="font-family: Verdana, Arial, 宋体; background-color: rgb(249, 249, 249);">name 属性用于对提交到服务器后的表单数据进行标识 id属性为html中标签的id </span>>




在servlet中就可以通过getParmeter方法得到参数

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
//PrintWriter out = response.getWriter();
String username = request.getParameter("username");      //得到name属性为“username”的数据
String password = request.getParameter("password");
String gender = request.getParameter("gender");
UserService userService = new UserService();
if(userService.userJudge(username, password,gender)){
response.sendRedirect("succese.jsp");
}
else {
response.sendRedirect("erroe.jsp");
}
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: