servlet操作

servlet为专门为后台调用而写的类,它由服务器容器调用,如tomcat

servlet生存周期:

1.servlet容器初始化时会加载该servlet

2.生成一个servlet对象,调用service的init方法进行初始化

3.当访问到达时,service会根据请求的类型选择调用doGet或者doPost方法

4.访问结束时,service调用destory,销毁该servlet对象

客户端访问时使用HttpURLConnection进行连接

下面是做的一个下载文件的demo:

服务器端:

public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		ServletOutputStream outStream = response.getOutputStream();
		File file = new File("D:\\workspace\\MyHttpTest\\src\\abc.txt");
		
		FileInputStream fin = new FileInputStream(file);
		int readData = -1;
		while((readData = fin.read()) != -1){
			outStream.write(readData);
		}
		outStream.close();
	}

客户端:

public static void main(String[] args) throws IOException {
		URL url = new URL("http://192.168.0.168:8088/MyHttpTest/servlet/MyHttp");
		HttpURLConnection connect = (HttpURLConnection) url.openConnection();
		connect.setRequestMethod("GET");
		connect.setRequestProperty("Proxy-Connection", "Keep-Alive");
		connect.setDoOutput(true);
		connect.setDoInput(true);
		
		InputStream inputs = connect.getInputStream();
		DataInputStream din = new DataInputStream(inputs);
		
		File file = new File("src\\abc.txt");
		FileOutputStream fout = new FileOutputStream(file);
		int readData = -1;
		while((readData = din.read()) != -1){
			fout.write(readData);
		}
		connect.disconnect();
	}
HttpURLConnection请求时的参数配置

在发送POST请求时

URL url = new URL("http://192.168.0.168:8088/MyHttpTest/servlet/MyHttp");
		HttpURLConnection connect = (HttpURLConnection) url.openConnection();
		
		connect.setRequestMethod("POST");
		connect.setRequestProperty( "charset", "utf-8");
		connect.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
		connect.setDoOutput(true);
		connect.setDoInput(true);
		connect.setInstanceFollowRedirects( false );
		
		String urlParameters  = "param1=a¶m2=b¶m3=c";
		byte[] postData       = urlParameters.getBytes("UTF-8");
		int    postDataLength = postData.length;

		connect.setRequestProperty( "Content-Length", Integer.toString( postDataLength ));
		DataOutputStream wr = new DataOutputStream( connect.getOutputStream());
		wr.write(postData);

postDataLength 需要设置正确,否则http服务会一直等待,最终会导致超时(没验证)。
在发送GET请求时
<pre name="code" class="java"><pre name="code" class="java">String u = "http://192.168.0.168:8088/MyHttpTest/servlet/MyHttp";
		u+="?param1=a¶m2=b¶m3=c";
		URL url = new URL(u);

服务端的参数获取:

String value = request.getParameter("param1");


servlet更加详细的流程可以参考这里

 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值