Хороший вопрос. Я не верю, что вам нужно избегать текста тела, но я знаю, что можно добавить заголовки к почте (например, BCC на тысячи адресов), если вы разрешите пользователю вводить адрес из адреса. Поэтому, если вы помещаете в нее переменные, определенно проверяйте новые строки (\n
и \r
), чтобы не добавлять дополнительные заголовки.
Расширение .jsf - это место, где FacesServlet находится во время периода JSF 1.2, часто отображаемого в web.xml.
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
Расширение .xhtml является фактическим файлом Facelets, так как вы физически помещены в webcontent вашего webapp, например. [F8].
Если вы вызываете эту страницу с расширением .jsf, например. http://localhost:8080/webapp/page.jsf, тогда будет вызываться FacesServlet, найти файл page.xhtml и проанализировать / отобразить его компоненты JSF. Если FacesServlet не вызывается, то конечный пользователь получит исходный код исходного кода XHTML (который можно увидеть правой кнопкой мыши, View Source).
Иногда расширение *.faces или /faces/* используется папка. Но это происходило со времен JSF 1.0 / 1.1. Вы можете выбирать и использовать любое сопоставление, которое вы хотели бы позволить прослушивать FacesServlet, даже если это ничего не говорит *.xyz. Сама фактическая страница всегда должна иметь расширение .xhtml, но это настраивается следующим <context-param> в web.xml:
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xml</param-value>
</context-param>
Это изменит FacesServlet, чтобы найти page.xml instad of (default) page.xhtml.
Совсем недавно с JSF / Facelets 2.0 было использовано сопоставление *.xhtml. В JSF / Facelets 1.x нельзя было использовать то же расширение отображения, что и физический файл. Это приведет к бесконечному циклу. Но с JSF / Facelets 2.0 это возможно, и это позволяет вам вызвать страницу на http://localhost:8080/webapp/page.xhtml.
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
Таким образом, вам не нужно настраивать некоторые ограничения безопасности, чтобы скрыть исходные исходные файлы для случаев, когда конечный пользователь меняет, например, .jsf в URL-адресе .xhtml в адресной строке браузера , Только инструментальные средства (IDE и плагины) и учебные ресурсы по-прежнему нуждаются в том, чтобы догнать защищенный переход от *.jsf до *.xhtml. Согласно JSF 2.3, FacesServlet по умолчанию будет авторегистрацией на *.xhtml тоже (рядом с /faces/*, *.faces и *.jsf). Это обращено к Mojarra 2.2.11.