<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FServlets%2FResponse</id>
		<title>Java/Servlets/Response - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FServlets%2FResponse"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Servlets/Response&amp;action=history"/>
		<updated>2026-04-21T22:10:24Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Servlets/Response&amp;diff=6337&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Servlets/Response&amp;diff=6337&amp;oldid=prev"/>
				<updated>2010-06-01T06:11:47Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:11, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Servlets/Response&amp;diff=6336&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Servlets/Response&amp;diff=6336&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Add headers to prevent browsers and proxies from caching this reply. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import javax.servlet.http.HttpServletResponse;&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright 2005 Joe Walker&lt;br /&gt;
 *&lt;br /&gt;
 * Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);&lt;br /&gt;
 * you may not use this file except in compliance with the License.&lt;br /&gt;
 * You may obtain a copy of the License at&lt;br /&gt;
 *&lt;br /&gt;
 *     http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 *&lt;br /&gt;
 * Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
 * See the License for the specific language governing permissions and&lt;br /&gt;
 * limitations under the License.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * @author Joe Walker [joe at getahead dot ltd dot uk]&lt;br /&gt;
 */&lt;br /&gt;
public class Main {&lt;br /&gt;
  /**&lt;br /&gt;
   * Add headers to prevent browsers and proxies from caching this reply.&lt;br /&gt;
   * @param resp The response to add headers to&lt;br /&gt;
   */&lt;br /&gt;
  public static void addNoCacheHeaders(HttpServletResponse resp)&lt;br /&gt;
  {&lt;br /&gt;
      // Set standard HTTP/1.1 no-cache headers.&lt;br /&gt;
      resp.setHeader(&amp;quot;Cache-Control&amp;quot;, &amp;quot;no-store, no-cache, must-revalidate&amp;quot;);&lt;br /&gt;
      // Set IE extended HTTP/1.1 no-cache headers (use addHeader).&lt;br /&gt;
      resp.addHeader(&amp;quot;Cache-Control&amp;quot;, &amp;quot;post-check=0, pre-check=0&amp;quot;);&lt;br /&gt;
      // Set standard HTTP/1.0 no-cache header.&lt;br /&gt;
      resp.setHeader(&amp;quot;Pragma&amp;quot;, &amp;quot;no-cache&amp;quot;);&lt;br /&gt;
      // Set to expire far in the past. Prevents caching at the proxy server&lt;br /&gt;
      resp.setHeader(&amp;quot;Expires&amp;quot;, &amp;quot;Sat, 6 May 1995 12:00:00 GMT&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Get output stream from HttpServletResponse ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.io.ByteArrayOutputStream;&lt;br /&gt;
import java.io.DataInputStream;&lt;br /&gt;
import java.io.DataOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import javax.servlet.ServletException;&lt;br /&gt;
import javax.servlet.ServletOutputStream;&lt;br /&gt;
import javax.servlet.http.HttpServlet;&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
import javax.servlet.http.HttpServletResponse;&lt;br /&gt;
import javax.servlet.http.HttpSession;&lt;br /&gt;
public class CounterServer extends HttpServlet {&lt;br /&gt;
  static final String COUNTER_KEY = &amp;quot;Counter.txt&amp;quot;;&lt;br /&gt;
  public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,&lt;br /&gt;
      IOException {&lt;br /&gt;
    HttpSession session = req.getSession(true);&lt;br /&gt;
    int count = 1;&lt;br /&gt;
    Integer i = (Integer) session.getAttribute(COUNTER_KEY);&lt;br /&gt;
    if (i != null) {&lt;br /&gt;
      count = i.intValue() + 5;&lt;br /&gt;
    }&lt;br /&gt;
    session.setAttribute(COUNTER_KEY, new Integer(count));&lt;br /&gt;
    DataInputStream in = new DataInputStream(req.getInputStream());&lt;br /&gt;
    resp.setContentType(&amp;quot;application/octet-stream&amp;quot;);&lt;br /&gt;
    ByteArrayOutputStream byteOut = new ByteArrayOutputStream();&lt;br /&gt;
    DataOutputStream out = new DataOutputStream(byteOut);&lt;br /&gt;
    out.writeInt(count);&lt;br /&gt;
    out.flush();&lt;br /&gt;
    byte[] buf = byteOut.toByteArray();&lt;br /&gt;
    resp.setContentLength(buf.length);&lt;br /&gt;
    ServletOutputStream servletOut = resp.getOutputStream();&lt;br /&gt;
    servletOut.write(buf);&lt;br /&gt;
    servletOut.close();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Set content type to charset=ISO-8850-1 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import javax.servlet.ServletException;&lt;br /&gt;
import javax.servlet.http.HttpServlet;&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
import javax.servlet.http.HttpServletResponse;&lt;br /&gt;
public class UnknownEncodingServlet extends HttpServlet {&lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,&lt;br /&gt;
      ServletException {&lt;br /&gt;
    response.setContentType(&amp;quot;text/html; charset=ISO-8850-1&amp;quot;);&lt;br /&gt;
    PrintWriter out = response.getWriter();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== URL rewriting through HttpServletResponse ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import javax.servlet.ServletException;&lt;br /&gt;
import javax.servlet.http.HttpServlet;&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
import javax.servlet.http.HttpServletResponse;&lt;br /&gt;
import javax.servlet.http.HttpSession;&lt;br /&gt;
public class CounterRewrite extends HttpServlet {&lt;br /&gt;
  static final String COUNTER_KEY = &amp;quot;Counter.count&amp;quot;;&lt;br /&gt;
  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,&lt;br /&gt;
      IOException {&lt;br /&gt;
    HttpSession session = req.getSession(true);&lt;br /&gt;
    resp.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
    PrintWriter out = resp.getWriter();&lt;br /&gt;
    int count = 1;&lt;br /&gt;
    Integer i = (Integer) session.getAttribute(COUNTER_KEY);&lt;br /&gt;
    if (i != null) {&lt;br /&gt;
      count = i.intValue() + 1;&lt;br /&gt;
    }&lt;br /&gt;
    session.setAttribute(COUNTER_KEY, new Integer(count));&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;head&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;title&amp;gt;Session Counter&amp;lt;/title&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/head&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;body&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;Your session ID is &amp;lt;b&amp;gt;&amp;quot; + session.getId());&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/b&amp;gt; and you have hit this page &amp;lt;b&amp;gt;&amp;quot; + count&lt;br /&gt;
        + &amp;quot;&amp;lt;/b&amp;gt; time(s) during this browser session&amp;quot;);&lt;br /&gt;
    String url = req.getRequestURI();&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;form method=GET action=\&amp;quot;&amp;quot; + resp.encodeURL(url) + &amp;quot;\&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;input type=submit &amp;quot; + &amp;quot;value=\&amp;quot;Hit page again\&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/form&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/body&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
    out.flush();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>