📄
字号:
第9章 Java Servlet
例子1
servlet源文件
Hello.java:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Hello extends HttpServlet
{ public void init(ServletConfig config) throws ServletException
{super.init(config);
}
public void service(HttpServletRequest reqest,HttpServletResponse response) throws IOException
{ //获得一个向客户发送数据的输出流:
PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=GB2312");//设置响应的MIME类型。
out.println("<HTML> <BODY>");
out.println("Simple servlet");
out.println("</body> </html>");
}
}
例子2
调用servlet的页面(该页面存放在web服务的根目录Root中)
givenumber.jsp(效果如图9.5所示)
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY bgcolor=cyan><Font size=1>
<P>输入一个数,servlet求这个数的平方根:
<FORM action="examples/servlet/Sqrt" method=get>
<Input Type=text name=number>
<Input Type=submit value="提交">
</FORM>
</BODY>
</HTML>
servlet源文件(效果如图9.6所示)
Sqrt.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Sqrt extends HttpServlet
{ public void init(ServletConfig config) throws ServletException
{super.init(config);
}
public void service(HttpServletRequest request,HttpServletResponse response) throws IOException
{ //获得一个向客户发送数据的输出流:
PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=GB2312");//设置响应的MIME类型。
out.println("<HTML> <BODY>");
String number=request.getParameter("number"); //获取客户提交的信息。
double n=0;
try{ n=Double.parseDouble(number);
out.print("<BR>"+Math.sqrt(n));
}
catch(NumberFormatException e)
{ out.print("<H1>input number letter please! </H1>");
}
out.println("</body> </html>");
}
}
例子3
connection.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY bgcolor=cyan><Font size=1>
<A Href="/servlet/Hello" >加载servlet<A>
</BODY>
</HTML>
例子4(效果如图9.7所示)
Count.java:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Count extends HttpServlet
{ int count;
public void init(ServletConfig config) throws ServletException
{super.init(config);
count=0;
}
public synchronized void service(HttpServletRequest request,HttpServletResponse response)
throws IOException
{ //获得一个向客户发送数据的输出流:
PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=GB2312");//设置响应的MIME类型。
out.println("<HTML> <BODY>");
count++; //增加计数。
out.println("you are "+count+"th"+" people");
out.println("</body> </html>");
}
}
例子5(效果如图9.8所示)
JSP页面
Example9_5.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY bgcolor=cyan>
<A Href="examples/servlet/ComputerPI" >查看PI的值<A>
</BODY>
</HTML>
servlet源文件
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ComputerPI extends HttpServlet
{ double sum=0,i=1,j=1;
int number=0;
public void init(ServletConfig config) throws ServletException
{super.init(config);
}
public synchronized void service(HttpServletRequest request,HttpServletResponse response)
throws IOException
{ //获得一个向客户发送数据的输出流:
PrintWriter out=response.getWriter();
response.setContentType("text/plain");//设置响应的MIME类型为纯文本。
number++;
sum=sum+i/j;
j=j+2;
i=-i;
out.println("You are "+number+"th People coming to here");
out.println("Now PI= "+4*sum);
}
}
例子6(效果如图9.9所示)
提交正数的JSP页面
Example9_6.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY bgcolor=cyan><Font size=1>
<P>输入一个数,提交给servlet(Post方式):
<FORM action="examples/servlet/ComputerFactor" method=post>
<Input Type=text name=number>
<Input Type=submit value="提交">
</FORM>
<P>输入一个数,提交给servlet(Get方式):
<FORM action="examples/servlet/ComputerFactor" method=get>
<Input Type=text name=number>
<Input Type=submit value="提交">
</FORM>
</BODY>
</HTML>
sevlet源文件
ComputerFacor.java:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ComputerFactor extends HttpServlet
{
public void init(ServletConfig config) throws ServletException
{super.init(config);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{ //获得一个向客户发送数据的输出流:
PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=GB2312");//设置响应的MIME类型。
out.println("<HTML>");
out.println("<BODY>");
String number=request.getParameter("number"); //获取客户提交的信息。
double n=0;
try{ n=Double.parseDouble(number);
out.println("<H1> factors of "+n+" :</H1>");
//求n的全部因数:
for(int i=1;i<=n;i++)
{ if(n%i==0)
out.println(i);
}
}
catch(NumberFormatException e)
{ out.print("<H1>input number letter please! </H1>");
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
doPost(request,response);
}
}
例子7(效果如图9.10所示)
提交正数的JSP页面
Example9_7.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY bgcolor=cyan><Font size=1>
<P>输入一个数,提交给servlet(Post方式):
<FORM action="examples/servlet/ComputerFactorandPrimNumber" method=post>
<Input Type=text name=number>
<Input Type=submit value="提交">
</FORM>
<P>输入一个数,提交给servlet(Get方式):
<FORM action="examples/servlet/ComputerFactorandPrimNumber" method=get>
<Input Type=text name=number>
<Input Type=submit value="提交">
</FORM>
</BODY>
</HTML>
sevlet源文件
ComputerFacorandPrimNumber.java:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ComputerFactorandPrimNumber extends HttpServlet
{
public void init(ServletConfig config) throws ServletException
{super.init(config);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{ //获得一个向客户发送数据的输出流:
PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=GB2312");//设置响应的MIME类型。
out.println("<HTML>");
out.println("<BODY>");
String number=request.getParameter("number"); //获取客户提交的信息。
double n=0;
try{ n=Double.parseDouble(number);
out.println("<H1> factors of "+n+" :</H1>");
//求n的全部因数:
for(int i=1;i<=n;i++)
{ if(n%i==0)
out.println(i);
}
}
catch(NumberFormatException e)
{ out.print("<H1>input number letter please! </H1>");
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{ PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=GB2312");//设置响应的MIME类型。
out.println("<HTML>");
out.println("<BODY>");
String number=request.getParameter("number"); //获取客户提交的信息。
double n=0;
try{ n=Double.parseDouble(number);
out.println("<H1> Primnumbers less "+n+" :</H1>");
//求小于n的全部素数:
int j=1;
for(int i=1;i<n;i++)
{ for(j=2;j<i;j++)
{if(i%j==0)
break;
}
if(j>=i)
{ out.println(i);
}
}
}
catch(NumberFormatException e)
{ out.print("<H1>input number letter please! </H1>");
}
}
}
例子8
提交信息的JSP页面
Example9_8.jsp:
<HTML>
<BODY bgcolor=cyan><FONT size=1>
<%@ page contentType="text/html;charset=GB2312" %>
<FORM action="examples/servlet/GetMessages" method=post name=form>
<INPUT type="text" name="boy">
<INPUT TYPE="submit" value="enter" name="submit">
</FORM>
</FONT>
</BODY>
</HTML>
处理HTTP请求头的sevlet源文件
GetMessages.java:
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class GetMessages extends HttpServlet
{
public void init(ServletConfig config) throws ServletException
{super.init(config);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{ //获得一个向客户发送数据的输出流:
PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=GB2312");//设置响应的MIME类型。
out.println("<HTML>");
out.println("<BODY>");
// 客户使用的协议是:
out.println("<BR>Protocol:");
String protocol=request.getProtocol();
out.println(protocol);
//获取接受客户提交信息的servlet:
out.println("<BR>Accept servlet:");
String path=request.getServletPath();
out.println(path);
//客户提交的信息的长度:
out.println("<BR>message Length:");
int length=request.getContentLength();
out.println(length);
// 客户提交信息的方式:
out.print("<BR> Method:");
String method=request.getMethod();
out.println(method);
//获取HTTP头文件中User-Agent的值:
out.println("<BR> User-Agent:");
String header1=request.getHeader("User-Agent");
out.println(header1);
//获取HTTP头文件中accept的值:
out.println("<BR> accept:");
String header2=request.getHeader("accept");
out.println(header2);
// 获取HTTP头文件中Host的值:
out.println("<BR> Host:");
String header3=request.getHeader("Host");
out.println(header3);
//获取HTTP头文件中accept-encoding的值:
out.println("<BR> accept-encoding:");
String header4=request.getHeader("accept-encoding");
out.println(header4);
//获取客户的IP地址:
out.println("<BR> client IP:");
String IP=request.getRemoteAddr();
out.println(IP);
// 获取客户机的名称:
out.println("<BR> client name:");
String clientName=request.getRemoteHost();
out.println(clientName);
// 获取服务器的名称:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -