我用的web服务器是Tomcat5.0,项目目录webapps,项目名:jspmvctest 是一个通过提交的体重和身高来测试身体状况的例子
项目各个文件目录:
表示层:jspmvctest/View.jsp jspmvctest/View_Result.jsp
控制器:jspmvctest/WEB-INF/Control_Servlet.java
模型层:jspmvctest/WEB-INF/Model.java
配置:jspmvctest/WEB-INF/web.xml
java文件都编译后放在jspmvctest/WEB-INF/classes文件夹下了运行jsp页面(View.jsp)显示正常,但是一提交就发生错误,错误提示如下:
HTTP Status 404 - /jspmvctest/Control_Servlet
type Status report
message /jspmvctest/Control_Servlet
description The requested resource (/jspmvctest/Control_Servlet) is not available.
说是请求资源不可用,不知道是哪里的问题,谁帮我找找啊,具体代码如下:View.jsp:提交表单
<%@ page contentType="text/html; charset=gb2312" %>
<html>
<head><title>世界卫生组织体重状况测定</title></head>
<body>
<center>
<font color=red size=5 >看看您的体重状况如何</font>
<hr><br>
<form name="view" method="post" action="Control_Servlet" >
体重 <input name="weight" value="" type="text" >公斤<br>
身高 <input type="text" name="height" value="" >米<br>
<input type="submit" value="提交" >
<input type="reset" value="重填" >
</form>
</center>
</body>
</html>Control_Servlet.java :接收类
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;public class Control_Servlet extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException{ //抛出接受请求的过程中的异常信息
doPost(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException{ //抛出发送信息的过程中异常信息
String weight=request.getParameter("weight");//获取表单中体重的字符串信息
String height=request.getParameter("height");//获取表单中身高的字符串信息
Model Pro =new Model(); //建立一个model的实例Pro
Pro.setBmi(weight,height); //调用Model的方法来处理事物
String BMI=Pro.getBmi(); //得到结果
Pro.setResult(BMI);
String result=Pro.getResult();
//通过建立一个model实例Pro,调用模型层组件model处理身高和体重信息
response.setContentType("text/html; charset=gb2312");//指定以中文字符集显示返回信息
request.setAttribute("result",result);
request.setAttribute("BMI",BMI);
//使用RequestDispatcher 转发至显示视图页面/view_Result.jsp
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/View_Result.jsp");//获得RequestDispatcher对象
requestDispatcher.forward(request,response);//转发
}
}Model.java :javabean
public class Model
{
public Model(){
} private String result ;
private String bmi ; //体重指数 public void setBmi(String w, String h){
double wt=Double.parseDouble(w); //将字符串类型的体重数据转换成double类型
double ht=Double.parseDouble(h); //将字符串类型的身高数据转换成double类型
double bmit =wt/(ht*ht); //按给定公式计算BMI体重指数
bmit*=10;
int bmitt=(int)bmit;
bmit=(double)bmitt/10;
bmi=String.valueOf(bmit);
//通过在浮点型和整型之间,先后进行相互的强制转换,使BMI指数只保留一位小数。
}
public String getBmi(){
return bmi;
}
public void setResult(String bmi){ //根据BMI指数大小判定体型
double bmit=Double.parseDouble(bmi);
if(bmit>18.5 && bmit<=25)
result="您的体重在正常范围,请继续保持!";
else if(bmit>25 && bmit<=30)
result="您的体重超重,请加强锻炼!";
else if(bmit>30)
result="您太.........重了,请注意饮食结构,加强锻炼!";
else
result="您的体形偏瘦,请注意营养!";
}
public String getResult(){
return result; //将处理结果返回控制层组件controller_Servlet
}}View_Result.jsp :显示结果
<%@ page contentType="text/html; charset=GB2312" %>
<%
//输出返回信息
String BMI=(String)request.getAttribute("BMI");
String result=(String)request.getAttribute("result");
out.println("<html>");
out.println("<body>");
out.println("<center>");
out.println("您的BMI体重指数为:" + "<font color=red>" + BMI + "</font><br>");
out.println(result);
out.println("</center>");
%>web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet>
<servlet-name>control</servlet-name>
<servlet-class>Control_Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>control</servlet-name>
<url-pattern>/controller</url-pattern>
</servlet-mapping>
</web-app>请帮忙看看,我自己实在是找不出来啊
项目各个文件目录:
表示层:jspmvctest/View.jsp jspmvctest/View_Result.jsp
控制器:jspmvctest/WEB-INF/Control_Servlet.java
模型层:jspmvctest/WEB-INF/Model.java
配置:jspmvctest/WEB-INF/web.xml
java文件都编译后放在jspmvctest/WEB-INF/classes文件夹下了运行jsp页面(View.jsp)显示正常,但是一提交就发生错误,错误提示如下:
HTTP Status 404 - /jspmvctest/Control_Servlet
type Status report
message /jspmvctest/Control_Servlet
description The requested resource (/jspmvctest/Control_Servlet) is not available.
说是请求资源不可用,不知道是哪里的问题,谁帮我找找啊,具体代码如下:View.jsp:提交表单
<%@ page contentType="text/html; charset=gb2312" %>
<html>
<head><title>世界卫生组织体重状况测定</title></head>
<body>
<center>
<font color=red size=5 >看看您的体重状况如何</font>
<hr><br>
<form name="view" method="post" action="Control_Servlet" >
体重 <input name="weight" value="" type="text" >公斤<br>
身高 <input type="text" name="height" value="" >米<br>
<input type="submit" value="提交" >
<input type="reset" value="重填" >
</form>
</center>
</body>
</html>Control_Servlet.java :接收类
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;public class Control_Servlet extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException{ //抛出接受请求的过程中的异常信息
doPost(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException{ //抛出发送信息的过程中异常信息
String weight=request.getParameter("weight");//获取表单中体重的字符串信息
String height=request.getParameter("height");//获取表单中身高的字符串信息
Model Pro =new Model(); //建立一个model的实例Pro
Pro.setBmi(weight,height); //调用Model的方法来处理事物
String BMI=Pro.getBmi(); //得到结果
Pro.setResult(BMI);
String result=Pro.getResult();
//通过建立一个model实例Pro,调用模型层组件model处理身高和体重信息
response.setContentType("text/html; charset=gb2312");//指定以中文字符集显示返回信息
request.setAttribute("result",result);
request.setAttribute("BMI",BMI);
//使用RequestDispatcher 转发至显示视图页面/view_Result.jsp
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/View_Result.jsp");//获得RequestDispatcher对象
requestDispatcher.forward(request,response);//转发
}
}Model.java :javabean
public class Model
{
public Model(){
} private String result ;
private String bmi ; //体重指数 public void setBmi(String w, String h){
double wt=Double.parseDouble(w); //将字符串类型的体重数据转换成double类型
double ht=Double.parseDouble(h); //将字符串类型的身高数据转换成double类型
double bmit =wt/(ht*ht); //按给定公式计算BMI体重指数
bmit*=10;
int bmitt=(int)bmit;
bmit=(double)bmitt/10;
bmi=String.valueOf(bmit);
//通过在浮点型和整型之间,先后进行相互的强制转换,使BMI指数只保留一位小数。
}
public String getBmi(){
return bmi;
}
public void setResult(String bmi){ //根据BMI指数大小判定体型
double bmit=Double.parseDouble(bmi);
if(bmit>18.5 && bmit<=25)
result="您的体重在正常范围,请继续保持!";
else if(bmit>25 && bmit<=30)
result="您的体重超重,请加强锻炼!";
else if(bmit>30)
result="您太.........重了,请注意饮食结构,加强锻炼!";
else
result="您的体形偏瘦,请注意营养!";
}
public String getResult(){
return result; //将处理结果返回控制层组件controller_Servlet
}}View_Result.jsp :显示结果
<%@ page contentType="text/html; charset=GB2312" %>
<%
//输出返回信息
String BMI=(String)request.getAttribute("BMI");
String result=(String)request.getAttribute("result");
out.println("<html>");
out.println("<body>");
out.println("<center>");
out.println("您的BMI体重指数为:" + "<font color=red>" + BMI + "</font><br>");
out.println(result);
out.println("</center>");
%>web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet>
<servlet-name>control</servlet-name>
<servlet-class>Control_Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>control</servlet-name>
<url-pattern>/controller</url-pattern>
</servlet-mapping>
</web-app>请帮忙看看,我自己实在是找不出来啊
解决方案 »
- 浏览器的默认模式切换是根据什么代码来判断的呢?
- 关于jsp中的table框中的数据怎么选中一行的问题?
- 请问哪里有深入浅出hibernate电子版下载
- 高难度问题--100分相送--怎么才能使我的网站在google.com里面搜索时靠前?
- 如何设置该文本框?
- 熟悉iBatis技术的帮个忙看看
- 再问servlet放置地方和web.xml配置
- 不知道用什么类型?
- 还是关于数据库。。。。(能不能使查询更好一点,更快一点)高分。谢谢
- how to call servlet from browser and transfer parameters?
- 学习Ajax要有什么基础吗?
- 高分求助:用jxl 生成Excel 划斜线
<url-pattern>/controller </url-pattern>
------------------------
你看看你的配置哪来的Control_Servlet....是controller提交要到url-pattern,
<form name="view" method="post" action="Control_Servlet" > =====
-------------------------
把aciton那里改掉。。改成如下:
<form name="view" method="post" action="controller" >
<servlet-name>control </servlet-name>
<servlet-class>Control_Servlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>control </servlet-name>
<url-pattern>/controller </url-pattern>
</servlet-mapping> <servlet-class>Control_Servlet</servlet-class>
红色的部分换成该类的完全路径(包名+类名)
<url-pattern>/controller</url-pattern>
这个才是真正应该请求的路径
jspmvctest/下是不是应该有个WebRoot?比如jspmvctest/WebRoot/WEB-INF/classes下放class呢?
应该改成<form name="view" method="post" action="/controller" >