首页 > 初学者JAVA问题

初学者JAVA问题

上面是目录结构

Index.java的Servlet代码是:

package ce.shi.deng.tao;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Index extends HttpServlet {

    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.getRequestDispatcher("/themes/tuzuan/index.jsp").forward(request, response);

    }
}

index.jsp 的 代码是:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!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=UTF-8">
<title>index</title>
<link rel="stylesheet" href="/css/main.css?1399888191.css">
</head>
<body>
<h1>index</h1>
<a href="/all/">all</a>
<img alt="logo" src="<%=request.getContextPath()%>/img/logo_38.png" />
<img alt="logo" src="/img/logo_38.png" />
<img alt="logo" src="img/logo_38.png" />
</body>
</html>

图片和css都不显示,请求状态是200

还是是当作HTML来访问了

Resource interpreted as Image but transferred with MIME type text/html: "http://localhost:8080/img/logo_38.png".

不知道为什么,请高手帮忙解答下

补充:

应该不是路劲问题,好像是请求类型错了,看下图,不知道为什么:






=======================分割线===========================

我把他设置成根目录了,这样不影响把,顺便把web.xml贴出来

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>DengTaoCeShi</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>Index</display-name>
    <servlet-name>Index</servlet-name>
    <servlet-class>ce.shi.deng.tao.Index</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Index</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>All</display-name>
    <servlet-name>All</servlet-name>
    <servlet-class>ce.shi.deng.tao.All</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>All</servlet-name>
    <url-pattern>/all</url-pattern>
    <url-pattern>/all/</url-pattern>
  </servlet-mapping>
</web-app>

路径的问题吧。
http://localhost:8080/img/logo_38.png这个没有项目名称


../../img/logo_38.png
用这个路径试试?

text/html是你图片引用出错而返回的错误信息(以html格式返回),而你图片引用出错的原因就是路径不对

<img alt="hello" src="../../img/4.jpg"/>

亲测有效

=========分割线==========

<img alt="hello" src="img/4.jpg"/>

web.xml配置

<servlet>
        <servlet-name>myclass</servlet-name>
        <servlet-class>com.young.MyClass</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>myclass</servlet-name>
        <url-pattern>/myclass</url-pattern>
    </servlet-mapping>

MyClass.java

package com.young;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyClass extends HttpServlet {

    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {

        request.getRequestDispatcher("/themes/tuzuan/first.jsp").forward(request, response);

    }
}


测试结果。
就像楼上说的,你的路径少了项目所在的路径。


ContextRoot 那是设置部署的路径...还有你这个视图是project Explorer最好切换成Package Explorer````这样层次更清楚

【热门文章】
【热门文章】