Maison  >  Article  >  Java  >  Comment résoudre le problème selon lequel le projet Web Java ne peut pas accéder aux fichiers HTML

Comment résoudre le problème selon lequel le projet Web Java ne peut pas accéder aux fichiers HTML

WBOY
WBOYavant
2023-04-27 20:34:121704parcourir

Le problème des pièges et les raisons

Le problème des pièges

Parce que le JavaWeb du blogueur est un cours intensif, il n'est donc pas très familier avec certains points de connaissances, le problème d'aujourd'hui se pose donc - Tomcat ne peut pas accéder au fichier html.

404 apparaîtra toujours lors de l'exécution. Chaque fois que cela se produit, c'est ennuyeux et déroutant. Bien que ce problème n'ait en réalité pas un grand impact sur certains projets, il rendra mon répertoire de projets très encombré. D'une manière générale, le problème est que si vous ne le résolvez pas, un tas de ressources statiques apparaîtront dans un seul dossier. Cela peut prendre une demi-journée pour retrouver certains fichiers de projet plus tard.

La raison de l'écueil

Par négligence, j'ai mis certains fichiers html sous WEB-INF. Étant donné que les ressources sous WEB-INF ne sont pas accessibles directement (WEB-INF est le répertoire de sécurité des applications Web de Java, il est uniquement ouvert au serveur et invisible pour le client.), elles ne sont accessibles que via des requêtes et des transferts. Il n’est donc pas accessible sur le navigateur (la redirection n’est pas non plus possible).

Java Web项目访问不到html文件怎么解决

Solution

Comme mentionné ci-dessus, l'accès direct n'est pas accessible. Mais nous pouvons accéder aux fichiers HTML via des transferts et des requêtes. Dans ce projet, le blogueur utilise l'accès sur demande. En d’autres termes, le front-end envoie d’abord un signal au back-end, indiquant que je dois demander une certaine page Web. Ensuite, le backend réagit en conséquence, puis revient pour accéder à l'interface correspondante.

public class regist extends ssm.ViewBaseServlet{//继承了一个类,这个类就是用来解析html时用的。
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     super.processTemplate("/user/regist",req,resp);//调用了类的方法,其实这个地方可以选择转发更方便!
    }

Configuration Web.xml :

    <servlet-name>jump</servlet-name>
    <servlet-class>database.jump</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>jump</servlet-name>
    <url-pattern>/jump</url-pattern>
  </servlet-mapping>

Ou ajoutez un @WebServlet("/login") dans le fichier Java.

Bien sûr, nous pouvons également placer les ressources statiques en dehors de WEB-INF au même niveau que les ressources statiques. Généralement, si elles sont placées à l'extérieur, vous devez utiliser un intercepteur/filtre pour terminer la vérification des autorisations et déterminer les utilisateurs légitimes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer