JSP Response Set Status

In this tutorial you will learn about how to set the HTTP status code in JSP.

In Java you can specify a HTTP-specific functionality regarding to send response. An interface HttpServletResponse provides these facility. This interface provides some static final fields to set the status which are indicating their respective status code, these codes are used for indicating their respective operations. There are number of fields are defined some of them fields value with their status code are given here :

Field's Name Status Code
SC_ACCEPTED  Status code (202) which shows a request was admitted for processing, but could not be completed.
SC_BAD_GATEWAY  Status code (502) which shows HTTP server got an invalid response from a server it looked up when acting as a proxy or gateway.
SC_BAD_REQUEST  Status code (400) which shows a request sent by the client is syntactically incorrect.
SC_CONFLICT  Status code (409) which shows a request could not be completed due to a conflict with the current state of the resource.
SC_CONTINUE  Status code (100) which shows a client can continue.
SC_CREATED  Status code (201) which shows a request succeeded and created a new resource on the server.
SC_EXPECTATION_FAILED  Status code (417) which shows the server could not meet the expectation given in the Expect request header.
SC_FORBIDDEN  Status code (403) which shows the server understood the request but refused to fulfill it.
SC_FOUND  Status code (302) which shows a resource reside temporarily under a different URI.
SC_GATEWAY_TIMEOUT  Status code (504) which shows the server did not receive a timely response from the upstream server while acting as a gateway or proxy.
SC_GONE Status code (410) which shows the resource is no longer available at the server and no forwarding address is known.
SC_HTTP_VERSION_NOT_SUPPORTED Status code (505) which shows the server does not support or refuses to support the HTTP protocol version that was used in the request message.
SC_INTERNAL_SERVER_ERROR Status code (500) which shows an error inside the HTTP server which prevented it from fulfilling the request.
SC_LENGTH_REQUIRED Status code (411) which shows a request cannot be handled without a defined Content-Length.
SC_MOVED_PERMANENTLY Status code (301) which shows a resource has permanently moved to a new location, and that future references should use a new URI with their requests.
SC_MOVED_TEMPORARILY Status code (302) which shows a resource has temporarily moved to another location, but that future references should still use the original URI to access the resource.
SC_NOT_FOUND Status code (404) which shows a requested resource is not available.
SC_NOT_IMPLEMENTED Status code (501) which shows the HTTP server does not support the functionality needed to fulfill the request.
SC_REQUEST_TIMEOUT Status code (408) which shows a client did not produce a request within the time that the server was prepared to wait.
SC_REQUEST_URI_TOO_LONG Status code (414) which shows the server is refusing to service the request because the Request-URI is longer than the server is willing to interpret.
SC_USE_PROXY Status code (305) which shows a requested resource MUST be accessed through the proxy given by the Location field.

Above mentioned statuses can be set using setStatus() method of HttpServletResponse interface.

Syntax of setStatus() method

void setStatus(int sc)

Argument of this method is a specified field name given in the above table.

Example :

Here I am giving a simple example which will demonstrate you about how to set the HTTP status code. In this example I have created a JSP page where designed a form to take input from the user. In the first input textbox, name of the website (e.g. google, facebook, orkut) have to be given and in the second input textbox domain (like com, in. uk) of that website have to be given and taken a submit button to submit a form. In further steps used scriptlet to write the java code where I have gotten both the values provided in the textboxes and created a new url using URL class of java.net package and converted the newly created url into a String because in the next steps where I have used the setHeader() method to set the response header takes String value only. Then I have used the setStatus() method of HttpServletResponse interface to set the status and gave the value response.SC_MOVED_TEMPORARILY (moves resource to another location) as an argument and also used the setHeader() method to set the header value. First argument of this method is a String and the value "location" is a common response header which specifies where the client should go to get document.

jspSetStatus.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.net.URL, java.util.*" %>
<!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=ISO-8859-1">
<title>JSP HTTP setStatus</title>
</head>
<body>
<form>
<table>
<tr>
<td>Enter website's name only : <br>
(e.g. devmanuals, google)</td>
<td><input type="text" name="webAdd"/></td>
</tr>
<tr>
<td>Enter domain of website : <br>
(like com, net, in)</td>
<td><input type="text" name="domain"/></td>
</tr>
<tr>
<td></td><td><input type="submit" value="submit"/></td>
</tr>
</table>
</form>
<%
String webAddress = request.getParameter("webAdd");
String dom = request.getParameter("domain");
URL newUrl = new URL("http://"+webAddress+"."+dom);
String url = newUrl.toString();
if(webAddress != null)
{
// resource will be moved to another location
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", url);
}
%>
</body>
</html>

Output :

When you will execute the above JSP page output will be as follows :

1. At first, a page will be displayed to input the values in the textboxes.

2. When you will click a submit button, resource will be moved to that website (if available).

JSP Response Set Status的更多相关文章

  1. 【FAQ】【JSP】HTTP Status 500 - Summary(问题排查时候应该仔细分析所有的错误打印说明)

    Question 1.HTTP Status 500 - Unable to compile class for JSP:'***' cannot be resolved to a type 原因分析 ...

  2. Jsp——response对象

    <%@ page language="java" contentType="text/html; charset=UTF-8" import=" ...

  3. JSP response.setCharacterEncoding与response.setContentType的区别

    问题描述 昨天在参考别人的项目时,发现页面引用js,css等文件总是乱码,后来才发现是MIME类型统一设置为text/html,并且仅仅编码设置了浏览器端的解析编码.另外,可以先通过文本编辑器(如no ...

  4. jsp response对象

    所属接口:javax.servlet.http.HttpServletResponse,其父接口是ServletResponse,而且 ServletResponse也现在只有唯一一个HttpServ ...

  5. request 和response

    当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...

  6. Servlet&jsp基础:第二部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. HTTP Response Splitting攻击探究 <转>

    第一小节:HTTP Basics:使用Proxy软件(例如Webscarab)来截断浏览器(客户端)和Server之间的HTTP通信,之后任意篡改得到预期结果即可. 第二小节:HTTP Splitti ...

  8. JSP处理AJAX

    register.jsp: <script type="text/javascript"> var req; function validate() { var idF ...

  9. #HTTP协议学习# (一)request 和response 解析

    注:本文转自:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html , 粉字[]内内容为个人笔记 当今web程序的开发技术真是 ...

随机推荐

  1. [SQL Server]关于标识列,标识从1开始计数的的方法

    DBCC CHECKIDENT ('表名',  RESEED, 0) //从30开始 DBCC  CHECKIDENT  (jobs,  RESEED,  30)

  2. gdb server调试步骤

    编译gdb/gdbserver 编译arm-linux-gdb 下载gdb-7.12,解压缩进入目录 ./configure --target=arm-linux --program-prefix=a ...

  3. 【BZOJ 2809 dispatching】

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 4393  Solved: 2246[Submit][Status][Discuss] Descript ...

  4. 使用rssh创建一个安全的文件服务器

    使用rssh创建一个安全的文件服务器 目前有这样一个需求,公司需要一台linux服务器作为文件服务器,但是基于安全性考虑,我不想使用ftp或者samba,但又必须允许用户上传文件.怎么办呢? 因为是l ...

  5. query的list()和iterate()区别 面试题

    query的list()和iterate()区别 1.返回的类型不一样,list返回List,iterate返回iterator 2.查询策略不同. 获取数据的方式不一样,list会直接查询数据库,i ...

  6. [ CodeVS冲杯之路 ] P3143

     不充钱,你怎么AC? 题目:http://codevs.cn/problem/3143/ 大水题一道,只要会遍历,这里讲一下思路 先序遍历:先输出,然后左儿子,最后右儿子 中序遍历:先左儿子,再输出 ...

  7. c/c++类型转换相关总结

    在c语言中存在两种类型转换:显式类型转换和隐式类型转换: 显示类型转换:在类型前加上(type)变量,对变量进行的转换,程序员自己显式添加: char *ptra = (char*)ptrb; voi ...

  8. SQL Server中JOIN的用法

    JOIN 分为:内连接(INNER JOIN).外连接(OUTER JOIN).其中,外连接分为:左外连接(LEFT OUTER JOIN).右外连接(RIGHT OUTER JOIN).全外连接(F ...

  9. bootstrapValidator 版本差异问题导致的submitHandler失效问题

    我用过的两个版本: v0.5.2-dev,0.4.5 这里针对于提交方法进行说明一下,如下代码: <script> $(function () { $("#addUserForm ...

  10. Centos7部署Open-Falcon监控

    参考博主:努力哥完成 一.Open-Falcon介绍 1.监控系统,可以从运营级别(基本配置即可),以及应用级别(二次开发,通过端口进行日志上报),对服务器.操作系统.中间件.应用进行全面的监控,及报 ...