Сайт: https://easyoffer.ru/
Все каналы: t.me/+xGeAw6ckJ4liYzQy
Контакт для рекламы: @sendme_ads
Post #618
3.59K
- 👍 2
- 😁 1
JA @easy_java_ru
Showing posts older than #624 · Back to latest
sudo mkdir /etc/nginx/ssl
sudo cp /path/to/your_domain_name.crt /etc/nginx/ssl/
sudo cp /path/to/your_private.key /etc/nginx/ssl/
server {
listen 80;
server_name your_domain_name;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name your_domain_name;
ssl_certificate /etc/nginx/ssl/your_domain_name.crt;
ssl_certificate_key /etc/nginx/ssl/your_private.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
root /var/www/html;
index index.html index.htm;
}
}sudo systemctl restart nginx
keytool -import -alias tomcat -file your_domain_name.crt -keystore /path/to/your_keystore.jks
server.xml: Добавьте следующий блок в файл server.xml (например, в /usr/local/tomcat/conf/server.xml):<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/path/to/your_keystore.jks"
type="RSA" />
</SSLHostConfig>
</Connector>
sudo systemctl restart tomcat
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebFilter("/*")
public class AuthenticationFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
HttpSession session = httpRequest.getSession(false);
if (session == null || session.getAttribute("user") == null) {
httpResponse.sendRedirect(httpRequest.getContextPath() + "/login.jsp");
} else {
chain.doFilter(request, response);
}
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
public void destroy() {}
}
HttpSessionBindingListener и HttpSessionListener.HttpSessionBindingListener:valueBound(HttpSessionBindingEvent event): Вызывается, когда объект добавляется в сессию.valueUnbound(HttpSessionBindingEvent event): Вызывается, когда объект удаляется из сессии, либо когда сессия становится недействительной.import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
public class MySessionObject implements HttpSessionBindingListener {
@Override
public void valueBound(HttpSessionBindingEvent event) {
System.out.println("Object added to session");
}
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
System.out.println("Object removed from session or session invalidated");
}
}
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class SessionServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
MySessionObject obj = new MySessionObject();
session.setAttribute("myObject", obj);
}
}
HttpSessionListener:sessionCreated(HttpSessionEvent se): Вызывается, когда создается новая сессия.sessionDestroyed(HttpSessionEvent se): Вызывается, когда сессия становится недействительной.import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class MySessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
System.out.println("Session created: " + se.getSession().getId());
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("Session destroyed: " + se.getSession().getId());
HttpSession session = se.getSession();
MySessionObject obj = (MySessionObject) session.getAttribute("myObject");
if (obj != null) {
obj.cleanup();
}
}
}
HttpSessionListener в web.xml:<listener>
<listener-class>com.example.MySessionListener</listener-class>
</listener>
HttpSession session = request.getSession();
session.setAttribute("username", "JohnDoe");
String username = (String) session.getAttribute("username");
encodeURL() и encodeRedirectURL() используются в сервлетах для управления сессиями и обеспечивают корректную работу URL в случае, если cookies отключены или не поддерживаются клиентом.sendRedirect() для перенаправления.encodeURL():import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class EncodeURLServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
session.setAttribute("user", "John Doe");
String url = response.encodeURL("nextPage.jsp");
response.setContentType("text/html");
response.getWriter().println("<a href=\"" + url + "\">Next Page</a>");
}
}
encodeRedirectURL():import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class EncodeRedirectURLServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
session.setAttribute("user", "John Doe");
String url = response.encodeRedirectURL("nextPage.jsp");
response.sendRedirect(url);
}
}
http://example.com/nextPage.jsp;jsessionid=1234567890http://example.com/nextPage.jspString url = response.encodeURL("http://example.com/resource");import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class URLRewritingServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
session.setAttribute("user", "John Doe");
String url = response.encodeURL("nextPage.jsp");
response.setContentType("text/html");
response.getWriter().println("<a href=\"" + url + "\">Next Page</a>");
}
}
http://example.com/resource;jsessionid=1234567890.HttpServletRequest `getCookies()`: Возвращает массив всех cookies, отправленных с текущим запросом.Cookie[] cookies = request.getCookies();
HttpServletResponse:`addCookie(Cookie cookie)`: Добавляет указанную cookie в ответ сервлета.Cookie cookie = new Cookie("name", "value");
response.addCookie(cookie);Cookie cookie = new Cookie("name", "value");setMaxAge(int expiry)cookie.setMaxAge(60 * 60 * 24); // 1 день
setPath(String uri)cookie.setPath("/app");setDomain(String domain)cookie.setDomain(".example.com");setSecure(boolean flag)cookie.setSecure(true);
setHttpOnly(boolean isHttpOnly)cookie.setHttpOnly(true);
Cookie cookie = new Cookie("username", "JohnDoe");
cookie.setMaxAge(60 * 60 * 24); // 1 день
response.addCookie(cookie);Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if ("username".equals(cookie.getName())) {
String username = cookie.getValue();
}
}
Cookie cookie = new Cookie("username", "JohnDoe");
cookie.setMaxAge(60 * 60 * 24); // 1 день
response.addCookie(cookie);Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if ("username".equals(cookie.getName())) {
String username = cookie.getValue();
// Использование cookie
}
}
HttpSession): Использует объект HttpSession для хранения информации о сессии на стороне сервера.HttpSession session = request.getSession();
HttpSession session = request.getSession(true);
HttpSession session = request.getSession(false);
session.setAttribute("user", "John Doe");String user = (String) session.getAttribute("user");session.removeAttribute("user");session.invalidate();
Cookie userCookie = new Cookie("user", "John Doe");
response.addCookie(userCookie);Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("user".equals(cookie.getName())) {
String user = cookie.getValue();
// Использование куки
}
}
}
String url = response.encodeURL("http://example.com/resource");
response.sendRedirect(url);<form action="nextServlet" method="post">
<input type="hidden" name="sessionId" value="12345">
<input type="submit" value="Submit">
</form>
html
<a href="nextServlet?sessionId=12345">Next Page</a>
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class SessionServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
session.setAttribute("user", "John Doe");
String user = (String) session.getAttribute("user");
response.getWriter().println("User: " + user);
}
}
%XX, где XX — это шестнадцатеричное значение байта.%20.&, ?, = и другие заменяются на %26, %3F, %3D соответственно.URLEncoder и метод encode(). Этот метод принимает строку и кодировку, которую нужно использовать (например, UTF-8), и возвращает закодированную строку.import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class URLEncoderExample {
public static void main(String[] args) {
try {
String originalString = "Hello World! This is a test: & = ?";
String encodedString = URLEncoder.encode(originalString, "UTF-8");
System.out.println("Original: " + originalString);
System.out.println("Encoded: " + encodedString);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
java
Для расшифровки (декодирования) URL в Java используется класс URLDecoder и метод decode().
Encoded: Hello+World%21+This+is+a+test%3A+%26+%3D+%3F
`